题目来源(type-challenges)
问题
实现 TrimRight<T>
,它接收确定的字符串类型并返回一个新的字符串,其中新返回的字符串删除了原字符串结尾的空白字符串。
例如
type Trimed = TrimLeft<' Hello World '> // 应推导出 ' Hello World'
解答
type TrimRight<S extends string> = S extends `${infer Sub}${' ' | '\n\t'}` ? TrimRight<Sub> : S
拆分
- 递归调用,递归判断右边是否为空白字符