Для типизации URL с базовым доменом, путём (users/orders/messages) и методом (get/update/delete/ban) можно использовать литеральные типы и шаблонные строки TypeScript.
Реализуй типизацию TypeScript для валидации URL, чтобы разрешались только корректные URL вида: базовый домен + путь (users/orders/messages) + метод (get/update/delete/ban). Произвольные строки должны вызывать ошибку компиляции.
Для типизации URL с базовым доменом, путём (users/orders/messages) и методом (get/update/delete/ban) можно использовать литеральные типы и шаблонные строки TypeScript.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для типизации URL с базовым доменом, путём (users/orders/messages) и методом (get/update/delete/ban) можно использовать литеральные типы и шаблонные строки TypeScript.
// Определяем допустимые части URL
type BaseDomain = "example.com";
type Path = "users" | "orders" | "messages";
type Method = "get" | "update" | "delete" | "ban";
// Формируем тип URL в виде шаблонной строки
type ValidURL = `${BaseDomain}/${Path}/${Method}`;
// Пример использования
const url1: ValidURL = "example.com/users/get"; // OK
const url2: ValidURL = "example.com/orders/ban"; // OK
const url3: ValidURL = "example.com/products/get"; // Ошибка компиляции
const url4: ValidURL = "example.com/users/create"; // Ошибка компиляции
Такой подход позволяет на этапе компиляции проверять, что строки соответствуют строго заданному формату URL.