Yuzhe's Blog

yuzhes

去除左侧空白

去除左侧空白

题目链接

题目

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