其他分享
首页 > 其他分享> > Typescript类型体操 - ReplaceAll

Typescript类型体操 - ReplaceAll

作者:互联网

答案

中文

实现 ReplaceAll<S, From, To> 将一个字符串 S 中的所有子字符串 From 替换为 To

例如

type replaced = ReplaceAll<'t y p e s', ' ', ''> // 期望是 'types'

English

Implement ReplaceAll<S, From, To> which replace the all the substring From with To in the given string S

For example

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

答案

type ReplaceAll<S extends string, From extends string, To extends string> = From extends ''
  ? S
  : (S extends `${infer L}${From}${infer R}`
    ? `${ReplaceAll<L, From, To>}${To}${ReplaceAll<R, From, To>}`
    : S);

在线演示

标签:Typescript,ReplaceAll,extends,体操,replaced,type,infer,types
来源: https://www.cnblogs.com/laggage/p/type-challenge-replace-all.html