Skip to content

Latest commit

 

History

History

0108-Trim-medium

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

0108 Trim

关键词: TypeScript, TypeChallenge

实现Trim<T>类, 该类型接受一个string类星作为参数, 返回将这个类型两侧的空格去掉后的类型

举个栗子:

type trimed = Trim<"  Hello World  ">; // expected to be 'Hello World'

答案

type W = " " | "\t" | "\n";
type Trim<T extends string> = T extends `${W}${infer R}`
  ? Trim<R>
  : T extends `${infer L}${W}`
    ? Trim<L>
    : T;

分析

0106-TrimLeft的解法, 只是变成了双边, 需要进行二重判断