Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
Exclude — это utility тип в TypeScript, который позволяет исключать определённые подтипы из union-типа. Он создаёт новое объединение, убирая те члены, которые можно присвоить какому-то другому типу.
Exclude<T, U>
T — исходный union-тип.U — подтипы (или union подтипов), которые нужно убрать из T.Таким образом, Exclude<T, U> удаляет из T все подтипы, которые можно присвоить U, оставляя только несовместимые.
null и undefined, чтобы избежать лишних проверок.Пример 1. Исключение типов из объединения
type Mixed = string | number | boolean;
// Убираем числа и булевы значения
type OnlyStrings = Exclude<Mixed, number | boolean>;
// OnlyStrings = string
Mixed = string | number | boolean.Exclude<Mixed, number | boolean> оставляет только те типы в Mixed, которые не можно присвоить number | boolean.string.Пример 2. Исключение null и undefined
type APIResponse = "success" | "error" | null | undefined;
// Убираем null и undefined, оставляя только валидные статусы
type ValidResponse = Exclude<APIResponse, null | undefined>;
function handleResponse(status: ValidResponse) {
console.log(`Received response: ${status}`);
}
handleResponse("success"); // ✅ Ок
handleResponse("error"); // ✅ Ок
handleResponse(null); // ❌ Ошибка компиляции
null и undefined, с помощью Exclude их можно убрать.| Утилита | Описание |
|---|---|
Exclude<T, U> | Исключает все подтипы из T, которые совместимы с U |
Extract<T, U> | Оставляет только подтипы из T, которые совместимы с U |
type Mixed = string | number | boolean;
type OnlyNumbersOrBooleans = Extract<Mixed, number | boolean>;
// number | boolean
type OnlyStrings = Exclude<Mixed, number | boolean>;
// string