me_edu
TypeScript для начинающихШаг 11 из 27 · 0% пройдено
Объединения и литеральные типы · Объединения и литеральные типы

Объединения типов (union)

number | stringnumberstringОбъединение: значение принадлежит одному из перечисленных типов
Объединение: значение принадлежит одному из перечисленных типов

Иногда значение может быть одного из нескольких типов. Это описывают объединением через вертикальную черту:

let id: number | string; id = 42; // ок id = "abc-1"; // тоже ок id = true; // ошибка

Объединения часто встречаются, когда данные приходят в разном виде или поле может отсутствовать:

function format(value: number | null): string { if (value === null) return "нет данных"; return value.toFixed(2); }

Заметьте: внутри ветки if (value === null) TypeScript понимает, что дальше value — точно число, и разрешает вызвать у него числовой метод. Это называют сужением типа (narrowing): по проверкам компилятор уточняет, какой именно тип сейчас.

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.