TypeScript `extend` ger ESLint-fel när man utökar en mallsträng?


Jag vill implementera en typ TrimStart på det här sättet:

type TrimStart<T extends string> = T extends ` ${infer Rest}` ? TrimStart<Rest> : T;

type TT = TrimStart<'   Vue React Angular'>; // 'Vue React Angular'

Men detta ger följande fel: Parsing error: Type expected.eslint

Svar #1

Du glömde att deklarera den generiska parametern T.

type TrimStart<T> = T extends ` ${infer Rest}` ? TrimStart<Rest> : T;

type TT = TrimStart<' Vue React Angular'>
// type TT = "Vue React Angular"