Как работают шаблонные литеральные типы (template literal types) в TypeScript?
Вопрос проверяет знание одной из новейших функций TypeScript, позволяющей работать с типами, используя шаблонные строки.
Короткий ответ
Шаблонные литеральные типы позволяют создавать новые строковые типы с использованием шаблонных строк. Это мощный инструмент для создания более точных и динамических строковых типов, например, для создания строго типизированных маршрутов или переменных.
Длинный ответ
Шаблонные литеральные типы в TypeScript позволяют комбинировать строковые литералы и другие типы для создания новых строковых типов. Это полезно для построения гибких, но типизированных строковых шаблонов. Такие типы могут быть полезны для создания URI-маршрутов, наименований полей или команд с динамическими частями, но при этом сохраняющих строгую типизацию.
Пример:
type Route = `/users/${string}`;
let validRoute: Route = '/users/john'; // правильно
let invalidRoute: Route = '/posts/john'; // ошибка: строка не соответствует шаблонуЗдесь тип Route описывает допустимые маршруты, начинающиеся с /users/, после чего может следовать любая строка.