TypeScript · Senior · Запитання 13 з 75

Що робить infer N extends number в умовному типі?

type ToNum<S> = S extends `${infer N extends number}` ? N : never;
type X = ToNum<'42'>;

Пояснення

Обмеження в infer (TS 4.7+) не лише перевіряє сумісність, а й дає змогу вивести літеральний числовий тип із рядка. Раніше для цього були потрібні вкладені умовні типи.

Де почитати

Помилка в запитанні

TypeScript · Senior · запитання 13

Перевірте себе

Пройдіть тест TypeScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест