TypeScript Объединенные типы

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

Например, когда свойство может быть как строкой, так и числом.


Объединенный тип (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(), который доступен только для строк, но не для чисел.