实现 Trim<T>,它接受一个明确的字符串类型,并返回一个新字符串,其中两端的空白符都已被删除
例如:
type trimed = Trim<' Hello World '> // expected to be 'Hello World'
type Space = ' ' | '\n' | '\t'
// 答案 1
type Trim<S extends string> = S extends `${Space}${infer R}`
? Trim<R>
: S extends `${infer L}${Space}`
? Trim<L>
: S
// 答案 2
type Trim<S extends string> = S extends `${Space}${infer O}` | `${infer O}${Space}` ? Trim<O> : S