Skip to content

Latest commit

 

History

History

0119-ReplaceAll-medium

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

0119 Replace All

关键词: TypeScript, TypeChallenge

实现ReplaceAll<S, From, To>类, 该类接受三个字符串类型, 将S串中所有出现的From修改为To并返回

举个栗子:

type replaced = ReplaceAll<"t y p e s", " ", "">; // expected to be 'types'

答案

  type Replace<S, F extends string, T extends string> = S extends `${infer L}${F}${infer R}`
    ? `${L}${T}${R}`
    : S;
  type ReplaceAll<S, F extends string, T extends string> = S extends `${infer L}${F}${infer R}`
    ? ReplaceAll<Replace<S, F, T>, F, T>
    : S

分析

逻辑基本同0116-Replace-medium, 只是增加了一个递归的处理