问题 #
实现 ReplaceAll<S, From, To>
将一个字符串 S
中的所有子字符串 From
替换为 To
。
例如
type replaced = ReplaceAll<'t y p e s', ' ', ''> // 期望是 'types'
解答 #
type ReplaceAll<S extends string, FROM extends string, TO extends string> = FROM extends ''
? S
: S extends `${infer T}${FROM}${infer U}`
? ReplaceAll<`${T}${TO}${U}`, FROM, TO>
: S
拆分 #
- 和 Replace 类似
- 需要递归调用然后替换,改动不大