00106-medium-trimleft

Back

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;

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; type TrimRight = S extends ${infer R}${Space} ? TrimRight : S; type Trim = S extends ${Space}${infer R} | ${infer R}${Space} ? Trim : S;

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