00106-medium-trimleft

Back

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 : S

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 : S

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

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