去除左侧空白
小于 1 分钟TC-Medium
去除左侧空白
题目
实现 TrimLeft<T>
,它接收确定的字符串类型并返回一个新的字符串,其中新返回的字符串删除了原字符串开头的空白字符串。
例如
type trimed = TrimLeft<' Hello World '> // 应推导出 'Hello World '
解答
type Whitespace = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Whitespace}${infer R}` ? TrimLeft<R> : S
简单的递归去除左侧空白即可。
如果S
的第一个字符是空白字符,则去除这个字符,对剩下的部分递归调用TrimLeft
;直到左侧第一个字符不再是空白字符,返回S
。