Capitalize
Challenge
Implement Capitalize<T> which converts the first letter of a string to uppercase and leave the rest as-is.
For example
type capitalized = Capitalize<"hello world">; // expected to be 'Hello world'
Solution
Zur Lösung dieses Problems müssen wir einfach mittels Template literal types das erste Zeichen als Typ-Variable extrahieren, in dem wir das klassische Konstrukt aus einem konditionellen Typen mit infer nutzen. Um einen Buchstaben großzuschreiben, können wir den eingebauten Typ Capitalize nutzen.
type MyCapitalize<S extends string> = S extends `${infer Head}${infer Tail}`
? `${Capitalize<Head>}${Tail}`
: S;