Open yunliuyan opened 1 year ago
关键要判断右侧是否全是空字符串
type IsEmptyStr<S extends string> = S extends '' ? true : S extends ` ${infer R}` ? IsEmptyStr<R> : false;
type TrimRight<S extends string> = S extends IsEmptyStr<S> ? '' : S extends `${infer L} ${infer R}` ? IsEmptyStr<R> extends true ? L : `${L} ${TrimRight<R>}` : never;
type Trimed = TrimRight<' Hello World '> // 应推导出 ' Hello World'
type TrimRight<T extends string> = T extends `${infer F}${' ' | '\t' | '\n'}` ? TrimRight<F> : T;
type Trimed = TrimRight<' Hello World '> // 应推导出 ' Hello World'
type TrimRight<T> = T extends `${infer U}${' '}` ? TrimRight<U> : T;
type Trimed = TrimRight<' Hello World '>
Trim Right
实现
TrimRight<T>
,它接收确定的字符串类型并返回一个新的字符串,其中新返回的字符串删除了原字符串结尾的空白字符串。例如
相关挑战