TypeScript · Senior · Pytanie 13 z 75
Co robi infer N extends number w typie warunkowym?
type ToNum<S> = S extends `${infer N extends number}` ? N : never;
type X = ToNum<'42'>;- ✓Poprawna odpowiedź: Wnioskuje
Nz ograniczeniem -Xstaje się typem literalnym42 - 2Konwertuje string
'42'na liczbę w runtime przezNumber() - 3Powoduje błąd kompilacji:
infernie obsługujeextends
Wyjaśnienie
Ograniczenie przy infer (TS 4.7+) nie tylko sprawdza zgodność, ale pozwala wywnioskować literalny typ liczbowy ze stringa. Wcześniej wymagało to zagnieżdżonych typów warunkowych.