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

Объединённые типы позволяют задавать переменным несколько типов с помощью символа вертикальной черты (|), и значения могут быть присвоены в соответствии с заданными типами.

Примечание: можно присваивать только указанные типы; присвоение других типов вызовет ошибку.

Синтаксис создания объединённого типа выглядит следующим образом:

Type1|Type2|Type3 

Пример

Объявите объединённый тип:

TypeScript

var val:string|number val = 12 console.log("Число равно"+ val) val = "Пример" console.log("Строка равна" + val)

Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:

JavaScript

var val; val = 12; console.log("Число равно" + val); val = "Пример"; console.log("Строка равна" + val);

Результат вывода:

数字为 12
字符串为 Example

Присвоение других типов вызовет ошибку:

var val:string|number 
val = true 

Вы также можете использовать объединённые типы в качестве параметров функции:

TypeScript

function disp(name:string|string[]) { if(typeof name == "string") { console.log(name) } else { var i; for(i = 0;i<name.length;i++) { console.log(name[i]) } } } disp("Пример") console.log("Вывод массива....") disp(["Пример","Google","Taobao","Facebook"])

Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:

JavaScript

function disp(name) { if (typeof name == "string") { console.log(name); } else { var i; for (i = 0; i < name.length; i++) { console.log(name[i]); } } } disp("Пример"); console.log("Вывод массива...."); disp(["Пример", "Google", "Taobao", "Facebook"]);

Результат вывода:

Example
输出数组....
Example
Google
Taobao
Facebook

Массивы объединённых типов

Мы также можем объявлять массивы как объединённые типы:

TypeScript

var arr:number[]|string[]; var i:number; arr = [1,2,4] console.log("**Числовой массив**") for(i = 0;i<arr.length;i++) { console.log(arr[i]) } arr = ["Пример","Google","Taobao"] console.log("**Строковый массив**") for(i = 0;i<arr.length;i++) { console.log(arr[i]) }

Скомпилируйте приведённый выше код, чтобы получить следующий код JavaScript:

JavaScript

var arr; var i; arr = [1, 2, 4]; console.log("**Числовой массив**"); for (i = 0; i < arr.length; i++) { console.log(arr[i]); } arr = ["Пример", "Google", "Taobao"]; console.log("**Строковый массив**"); for (i = 0; i < arr.length; i++) { console.log(arr[i]); }

Результат вывода:

**数字数组**
1
2
4
**字符串数组**
Example
Google
Taobao
Другие расширения