Skip to content

去除左侧空白

题目

实现 TrimLeft<T> ,它接收确定的字符串类型并返回一个新的字符串,其中新返回的字符串删除了原字符串开头的空白字符串。

例如

ts
type trimed = TrimLeft<"  Hello World  ">; // 应推导出 'Hello World  '

解答

  • 使用 模板字符 来匹配“空字符串”
  • 使用 infer 解构剩余字符
  • 递归调用 TrimLeft<S> 直至所有字符处理完毕
ts
type Space = " " | "\n" | "\t";

type TrimLeft<S extends string> = S extends `${Space}${infer R}`
  ? TrimLeft<R>
  : S;

Released under the MIT License.