type Replace<
S extends string,
O extends string,
T extends string
> = S extends `${infer F}${O}${infer R}` ? `${F}${T}${R}` : S
Solution by Flavour86 #33459
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer F}${From}${infer L}` ? `${F}${To}${L}` : S
Solution by Tubring25 #33312
type Replace<S extends string, From extends string, To extends string> = From extends ''
? S
: S extends `${infer left}${From}${infer right}`
? `${left}${To}${right}`
: S
Solution by loevray #33280
// your answers
type Replace<S extends string, From extends string, To extends string> =
From extends ''
? S
: S extends `${infer F}${From}${infer R}`
? `${F}${To}${R}`
: S
Solution by KeithChou #33195
// 解答をここに記入
type Replace<S extends string, From extends string, To extends string> = From extends ''
? S
: S extends `${infer Start}${From}${infer Tail}`
? `${Start}${To}${Tail}`
: S;
infer Start or Tail
とFrom
で文字列を切り分けし、From
部分をTo
へ変更することで置き換えを実施。Solution by Yasunori-aloha #32903
type Replace<S extends string, From extends string, To extends string> = S extends `${infer First}${From}${infer Rest}`
? From extends '' ? S : `${First}${To}${Rest}`
: S
Solution by ZhipengYang0605 #32820
type Replace<S extends string, From extends string, To extends string> =
From extends ''
? S
: S extends `${infer H}${From}${infer T}`
? `${H}${To}${T}`
: S```
Solution by keyurparalkar #32410
type Replace<S extends string, From extends string, To extends string> =
From extends ''
? S
: S extends `${infer Head}${From}${infer Tail}`
? `${Head}${To}${Tail}`
: S
Solution by dev-hobin #32375
type Replace<S extends string, Target extends string, Replaced extends string> =
Target extends ''
? S
: S extends `${infer First}${Target }${infer Last}`
? `${First}${Replaced }${Last}`
: S
Solution by rkamely #32059
type Replace<S extends string, From extends string, To extends string> = From extends ""
? S
: S extends `${infer F}${From}${infer L}`
? L extends ""
? `${F}${To}`
: `${F}${To}${L}`
: S;
Solution by gasmg #32049
// 解答をここに記入
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer F}${From}${infer R}` ? `${F}${To}${R}` : S;
Solution by pea-sys #31999
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer F}${From}${infer R}` ? `${F}${To}${R}` : S;
Solution by kai-phan #31628
// your answers
type Replace<
S extends string,
K extends string,
T extends string
> = S extends `${infer Str1}${K}${infer Str2}` ? `${Str1}${T}${Str2}` : S;
Solution by AhmedRagabKamal #31507
type Replace<
S extends string,
From extends string,
To extends string
> = S extends `${infer Left}${From extends "" ? never : From}${infer Right}`
? `${Left}${To}${Right}`
: S;
Solution by vipulpathak113 #31469
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer A}${From}${infer B}` ? `${A}${To}${B}` : S;
Solution by eward957 #31235
// your answers
type Replace<S extends string, From extends string, To extends string> =
From extends ''
? S
: S extends `${infer x}${From}${infer y}`
? `${x}${To}${y}`
: S;
Solution by d1zzzzy #31108
type Replace<S extends string, From extends string, To extends string> =
From extends ''
? S
: S extends `${infer V}${From}${infer R}`
? `${V}${To}${R}`
: S
Solution by MyeonghoonNam #31009
type Replace<S extends string, From extends string, To extends string> =
S extends `${infer L}${From extends '' ? never : From}${infer R}` ? `${L}${To}${R}` : S
Solution by qiuye-zhou #30417
type Replace<S extends string, F extends string, T extends string> =
S extends `${infer V}${F}${infer R}`
? `${V}${T}${R}`
: S;
type replaced = Replace<'types are fun!', 'fun', 'awesome'> // expected to be 'types are awesome!'
Solution by rxMATTEO #30091
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer V}${From}${infer R}` ? `${V}${To}${R}` : S
Solution by giokaxo #29992
type Replace<T,R,K> = T extends `${infer L}${R}${infer A}` ? `${L}${K}${A}` : never
Solution by 1587315093 #29835
type Replace<S extends string, From extends string, To extends string> = S extends `${infer Left}${From extends '' ? never : From}${infer Right}`
? `${Left}${To}${Right}`
: S
Solution by agus-wesly #29689
type Replace<S extends string, From extends string, To extends string> = From extends "" ? S : S extends `${infer Start}${From}${infer Rest}` ? `${Start}${To}${Rest}` : S;
Solution by horberlan #29642
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer left}${From}${infer right}` ? `${left}${To}${right}` : S;
Solution by Whiskeyi #29507
type Replace<T extends string, From extends string, To extends string> = T extends `${infer R1}${From}${infer R2}` ? `${R1}${To}${R2}` :
T extends `${infer R1}${From}` ? `${R1}${To}` : T extends `${From}${infer R2}` ? `${To}${R2}` : T;
type replace = Replace<'hello world', 'wor', ''>;
Solution by sundial-dreams #29436
type Replace<S extends string, From extends string, To extends string> =
From extends '' ? S
: S extends `${infer A}${From}${infer B}` ? `${A}${To}${B}` : S
Solution by MohammadArasteh #29390
type Replace<S extends string, From extends string, To extends string> = From extends ''
? S
: S extends `${infer Left}${From}${infer Right}`
? `${Left}${To}${Right}`
: S
Solution by heavenly-zy #28996
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${ infer L }${ From }${ infer R }` ? `${ L }${ To }${ R }` : S
Solution by Yirujet #28972
Replace the first match of From
in S
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer H}${From}${infer R}` ? `${H}${To}${R}` : S
Solution by qianzhong516 #28927
// your answers
type Replace<S extends string, From extends string, To extends string> = S extends `${infer First}${From}${infer Last}` ? `${First}${To}${Last}` : S
Solution by kerolossamir165 #28913