Перейти к основному содержимому

Объединения типов в TypeScript

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

Например, свойство может содержать либо string, либо number.


Объединение | (ИЛИ)

Символ | означает «или». Запись string | number говорит, что параметр — это string или number.

Пример

Одна и та же функция принимает и число 404, и строку '404'.

Prompt
Покажите параметр, который принимает либо строку, либо число, с помощью объединения типов. Напишите функцию printStatusCode, у которой параметр code имеет тип string | number и которая выводит «Мой код статуса: .» в шаблонной строке, затем вызовите её один раз с числом 404 и один раз со строкой '404'.
Вывод: программа на TypeScript и захваченный вывод

Ошибки объединения типов

Примечание: когда вы используете объединение типов, нужно знать, какой тип у вас на самом деле, прежде чем применять возможности, специфичные для типа, иначе вы получите ошибки типов.

Пример

Вызов toUpperCase() здесь не проходит: это метод типа string, а у number его нет, поэтому TypeScript отклоняет вызов на string | number.

Prompt
Покажите ошибку компиляции, которая возникает при вызове метода, доступного только для строк, на значении с объединением типов. Напишите функцию printStatusCode с параметром code: string | number, которая выводит code.toUpperCase() внутри шаблонной строки; компилятор должен сообщить, что toUpperCase не существует у типа string | number, потому что у number такого метода нет.
Вывод: программа на TypeScript и захваченный вывод