去除两端空白字符
小于 1 分钟TC-Medium
去除两端空白字符
题目
实现Trim<T>
,它接受一个明确的字符串类型,并返回一个新字符串,其中两端的空白符都已被删除。
例如
type trimed = Trim<' Hello World '> // expected to be 'Hello World'
解答
本题与0106 - 去除左侧空白类似.
我们先仿写出 去除右侧空白的TrimRight
Trim
就是TrimLeft
和TrimRight
的组合。
type Whitespace = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Whitespace}${infer R}` ? TrimLeft<R> : S
type TrimRight<S extends string> = S extends `${infer R}${Whitespace}` ? TrimRight<R> : S
type Trim<S extends string> = TrimLeft<TrimRight<S>>