Пример
type Events = { login: { userId: string }; logout: void };
type Listeners<E> = {
[K in keyof E & string as `on${Capitalize<K>}`]: (payload: E[K]) => void;
};
type L = Listeners<Events>;
type Unit = 'px' | 'rem' | '%' | 'vh';
type Length = `${number}${Unit}`;
const ok: Length = '16px';
const bad: Length = '16';
type Split<S extends string, D extends string> =
S extends `${infer Head}${D}${infer Tail}` ? [Head, ...Split<Tail, D>] : [S];
type Keys = Split<'a.b.c', '.'>;
Итог
Event map → on${Capitalize<K>} handlers; ${number}${Unit} для CSS; recursive Split — mini-parser на типах.