type Space = '\t' | '\n' | ' '
type TrimLeft<S extends string> = S extends `${Space}${infer word}` ? TrimLeft<word> : S
Solution by loevray #33326
// 你的答案
type WhiteType = ' '|'\n'|'\t'
type TrimLeft<S extends string> = S extends `${WhiteType}${infer O}` ? TrimLeft<O> : S
Solution by walker-hzx #32937
// 解答をここに記入
type Space = ' '| '\n'|'\t';
type TrimLeft<S extends string> = S extends `${Space}${infer A}`
? TrimLeft<A>
: S;
型変数S
がスペースの後に文字列が来ているかどうかを判定し、スペースがあれば、TrimLeft
を再帰処理で動作させる。
\n
や\t
も含まれるため、Space
というユニオン型を定義し使用する。Solution by Yasunori-aloha #32882
type Space = "\n" | " " | "\t"
type TrimLeft<S extends string> =S extends `${Space}${infer R}` ? TrimLeft<R>: S;
Solution by bananana0118 #32753
type Space = ' ' | '\n' | '\t'
type TrimLeft<T extends string> = T extends `${Space}${infer S}` ? TrimLeft<S> : T
Solution by ZhulinskiiDanil #32675
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer Rest}` ? TrimLeft<Rest> : S
Solution by dev-hobin #32364
type EmptyCharacter =
| ' '
| '\n'
| '\t'
type TrimLeft<TData extends string> = TData extends `${infer LeftPad}${infer Content}`
? LeftPad extends EmptyCharacter
? TrimLeft<Content>
: TData
: TData
Solution by LwveMike #32244
// your answers
type TrimLeft<S extends string> = S extends `${' ' | '\n' |'\t'}${infer R}` ? TrimLeft<R> : S;
Solution by pea-sys #31946
type Space = ' ' | '\n' |'\t'
type TrimLeft<S extends string> = S extends `${Space}${infer R}` ? TrimLeft<R> : S;
Solution by kai-phan #31625
// your answers
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer Text}` ? TrimLeft<Text> : S;
Solution by LcsGa #31611
type Space = '\t' | '\n' | ' ';
type TrimLeft<S extends string> = S extends `${Space}${infer R}` ? TrimLeft<R> : S;
Solution by jinyoung234 #31606
// your answers
type TrimLeft<T extends string> = T extends ` ${infer Text}` ? TrimLeft<Text> : T;
Solution by AhmedRagabKamal #31495
type TrimLeft<S extends string> = S extends `${infer R}${infer U}`
? R extends " " | "\n" | "\t"
? TrimLeft<U>
: `${R}${U}`
: "";
Solution by vipulpathak113 #31417
type H<T extends string> = `\n${T}`|`\t${T}`|` ${T}`
type TrimLeft<S extends string> = S extends H<infer A> ? TrimLeft<A> : S;
Solution by eward957 #31228
type Space = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Space}${infer R}` ? TrimLeft<R> : S
Solution by MyeonghoonNam #30927
type TrimLeft<S extends string> =
S extends `${infer R}${infer Rest}`
? R extends ' ' | '\n' | '\t'
? TrimLeft<Rest>
: S
: ''
Solution by GodAraden #30633
type TrimLeft<S extends string> = S extends `${ " " | "\n" | "\t" }${infer Rest}` ? TrimLeft<Rest> : S;
Solution by qiuye-zhou #30381
type WhiteSpace = ' ' | '\t' | '\n'
type TrimLeft<S extends string> = S extends `${WhiteSpace}${infer R}` ? R extends `${WhiteSpace}${string}` ? TrimLeft<R> : R : S
Solution by Indusy #30268
type TrimLeft<T extends string> = T extends `${" "}${infer U extends string}`
? TrimLeft<U>
: T;
Solution by lanshuai1208 #30206
type SpacePat = ' ' | '\n' | '\t';
type TrimLeft<S extends string> = S extends `${SpacePat}${infer R}` ? TrimLeft<R> : S;
Solution by kanishev #30129
type TrimLeft<T extends string> = T extends `${' ' | '\n'}${infer R}` ? TrimLeft<R>: T;
type trimed = TrimLeft<' Hello World '> // expected to be 'Hello World '
Solution by rxMATTEO #30086
type Space = " " | "\n" | "\t";
type TrimLeft = S extends ${Space}${infer R}
? TrimLeft = S extends ${infer R}${Space}
? TrimRight = S extends ${Space}${infer R}
| ${infer R}${Space}
? Trim
Solution by tasseles #29947
type TrimLeft<S extends string> = S extends `${" " } ${infer Rest}`
? TrimLeft<Rest>
: S;
Solution by bjnslv #29780
템플릿리터럴을 활용한 타입추론
type Space = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Space}${infer R}` ? TrimLeft<R> : S
Solution by MyeonghoonNam #29759
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer U}` ? TrimLeft<U> : S
Solution by MrRabbit1993 #29725
type ToTrim = ' ' | '\n\t'
type TrimLeft<S extends string> = S extends `${ToTrim}${infer Rest}`
? TrimLeft<Rest>
: S
Solution by agus-wesly #29685
type Space = ' ' | '\n' | '\t';
type TrimLeft<S extends string> = S extends `${Space}${infer R}` ? TrimLeft<R> : S
Solution by MohammadArasteh #29386
type Space = ' ' | '\t' | '\n'
type TrimLeft<S extends string> = S extends `${Space}${infer T}` ? TrimLeft<T> : S
Solution by heavenly-zy #28974
type TrimLeft<S extends string> = S extends `${ ' ' | '\n' | '\t' }${ infer R }` ? TrimLeft<R> : S
Solution by Yirujet #28969
type TrimText = ' ' | '\n' | '\t';
type TrimLeft<S extends string> = S extends `${TrimText}${infer Rest}` ? TrimLeft<Rest> : S;
Solution by kai-phan #28730