久しぶりのチャレンジ
文字列を受け取り、その文字列の左側の空白を削除した新しい文字列を返すTrimLeft<T>
を実装する。
typescriptlang.org/docs/handbook/2/template-literal-types.html
Template Literal TypesはJSのテンプレートリテラルと同じ記法で特定の形式を満たす文字列リテラルを型として定義することができます。
type space = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${space}${infer L}` ? TrimLeft<L> : S