logoProsperBao

ReplaceAll

2022-03-29 06

题目来源(type-challenges)

问题

实现 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

拆分

  1. Replace 类似
  2. 需要递归调用然后替换,改动不大