[Typescript] 69. Medium - Trim Right
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 = ' ' | '\t' | '\n';
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 '>, ''>>,
]

浙公网安备 33010602011771号