type Space = ' ' | '\n' | '\t';
type TrimLeft<S extends string> = S extends `${Space}${infer U}` ? TrimLeft<U> : S;
infer U
声明剩余未处理字符串Solution by djdidi #37152
type TrimLeft<S extends string> = S extends `${infer F}${infer R}` ? F extends ' ' | '\n' | '\t' ? TrimLeft<R> : S : S
Solution by 359Steve #37051
// your answers
type SpecialChar = "\n" | "\t" | "\r" | " ";
type TrimLeft<S extends string> = S extends `${infer First}${infer Rest}`
?
First extends SpecialChar ? TrimLeft<Rest> : S
: ''
Solution by thavguard #36953
// your answers
type SeparateSymbol = ' ' | '\n' | '\t';
type TrimLeft<S extends string> = S extends `${SeparateSymbol}${infer Last}` ? TrimLeft<Last> : S;
Solution by AlexBraunMagic #36901
type Space = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Space}${infer W}` ? TrimLeft<W> : S
Solution by tungulin #36732
// 你的答案
type Space = ' ' | '\n' | '\t'
type TrimLeft = S extends ${Space}${infer R}
? TrimLeft
Solution by zhaohuaishuai #36649
type TrimLeft<S extends string> = S extends `${'\n' | ' ' | '\t'}${infer U}` ? TrimLeft<U> : S
Solution by tungulin #36612
type TrimLeft =
S extends ${infer R}
| \n${infer R}
| \t${infer R}
? TrimLeft
Solution by asylbekduldiev #36508
type Space = ' ' | '\t' | '\n';
type TrimLeft<S extends string> = S extends `${Space}${infer P}` ? TrimLeft<P> : S
Solution by tac-tac-go #36000
type TrimLeft<S extends string> = S extends `${' '| '\n' | '\t'}${infer I}` ? TrimLeft<I> : S
Solution by EvilEl #35843
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer Rest}` ? TrimLeft<Rest> : S;
Solution by gangnamssal #35560
type TrimLeft<S extends string> = S extends `${Empty}${infer V}`? TrimLeft<V> : S
Solution by RanungPark #35509
type Empty = ' '| '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Empty}${infer V}`? TrimLeft<V> : S
Solution by RanungPark #35480
type TrimLeft<S extends string> = S extends ` ${infer R}`
? TrimLeft<R>
: S extends `\n\t${infer R}`
? TrimLeft<R>
: S
Solution by eunsukimme #35135
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer R}` ? TrimLeft<R> : S;
Solution by raeyoung-kim #35029
// 여기 풀이를 입력하세요
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer R}` ? TrimLeft<R> : S;
Solution by LeeKangHyun #34914
We can separate string with literal templates.
type TrimLeft<S extends string> = S extends `${' ' | '\t' | '\n'}${infer R}` ? TrimLeft<R> : S;
Solution by dev-jaemin #34884
// your answers
type TrimLeft<S extends string> = S extends `${" " | "\n" | "\t"}${infer R}`
? TrimLeft<R>
: S;
Solution by zeyuanHong0 #34835
type TrimLeft<T extends string> = T extends `${' ' | '\n' | '\t'}${infer Rest}` ? TrimLeft<Rest> : T;
Solution by semet #34678
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer R}` ? TrimLeft<R> : S
Solution by binhdv155127 #34644
type Space = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Space}${infer R}` ? TrimLeft<R> : S
Solution by devshinthant #34571
// 你的答案
type Space = ' ' | '\n' | '\t'
type TrimLeft = S extends ${Space}${infer B}
?TrimLeft:S
Solution by W-fitTiger #34258
type TrimLeft<S extends string> = S extends `${' '|'\n'|'\t'}${infer rest}` ? TrimLeft<rest> : S
Solution by ouzexi #33993
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer U}` ? TrimLeft<U> : S
Solution by ScriptBloom #33895
type Space = ' ' | '\n\t'
type TrimLeft<T extends string> = T extends `${Space}${infer R}` ? TrimLeft<R> : T
Solution by Danny101201 #33844
type TrimLeft<S extends string> = S extends `${' ' | '\n' | '\t'}${infer Rest}`
? TrimLeft<Rest>
: S
Solution by laplace1009 #33721
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