00116-medium-replace

Back

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;

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