Объединённые типы используются, когда значение может быть более чем одного типа.
Например, когда свойство может быть как строкой, так и числом.
Объединенный тип (Union) | (ИЛИ)
Используя символ |, мы говорим, что наш параметр может быть либо строкой, либо числом:
Пример
function printStatusCode(code: string | number) {
console.log(`Мой код статуса: ${code}`);
}
printStatusCode(404); // Ok
printStatusCode('404'); // Ok
Ошибки с объединёнными типами
Стоит помнить, что при использовании объединённых типов нужно знать, какой именно тип используется, чтобы избежать ошибок типов:
Пример
function printStatusCode(code: string | number) {
console.log(`Мой код статуса: ${code.toUpperCase()}`);
}
// Ошибка: Property 'toUpperCase' does not exist on type 'string | number'.
// Свойство 'toUpperCase' не существует в типе 'number'.
Объяснение:
В нашем примере возникает ошибка, вызванная обращением к методу toUpperCase(), который доступен только для строк, но не для чисел.