Implement TrimRight<T>
which takes an exact string type and returns a new string with the whitespace ending removed.
For example:
type Trimed = TrimRight<' Hello World '> // expected to be ' Hello World'
/* _____________ Your Code Here _____________ */
type Space = ' ' | '\n\t';
type TrimRight<S extends string> = S extends `${infer Left}${Space}`
? TrimRight<Left>
: S;
/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'
type cases = [
Expect<Equal<TrimRight<'str'>, 'str'>>,
Expect<Equal<TrimRight<'str '>, 'str'>>,
Expect<Equal<TrimRight<'str '>, 'str'>>,
Expect<Equal<TrimRight<' str '>, ' str'>>,
Expect<Equal<TrimRight<' foo bar \n\t '>, ' foo bar'>>,
Expect<Equal<TrimRight<''>, ''>>,
Expect<Equal<TrimRight<'\n\t '>, ''>>,
]
标签:Trim,Typescript,_____________,Space,TrimRight,Expect,str,69,type From: https://www.cnblogs.com/Answer1215/p/16829597.html