TypeScript Union(聯(lián)合)

2019-01-23 14:10 更新

TypeScript1.4使程序能夠組合一種或兩種類型。union(聯(lián)合)類型是一種強(qiáng)大的方法,用于表示可以是幾種類型之一的值。使用管道符號(hào)(|)組合兩個(gè)或多個(gè)數(shù)據(jù)類型以表示聯(lián)合類型。換句話說,一個(gè)聯(lián)合類型被寫成由豎線分隔類型的序列。

語法:聯(lián)合literal

Type1|Type2|Type3 

示例:聯(lián)合類型變量

var val:string|number 
val = 12 
console.log("numeric value of val "+val) 
val = "This is a string" 
console.log("string value of val "+val)

在上述的例子中,變量的類型是union。這意味著該變量可以包含數(shù)字或字符串作為其值。

在編譯時(shí),它會(huì)生成以下JavaScript代碼:

//Generated by typescript 1.8.10
var val;
val = 12;
console.log("numeric value of val " + val);
val = "This is a string";
console.log("string value of val " + val);

它的輸出如下:

numeric value of val  12 
string value of val this is a string 

示例:聯(lián)合類型和功能參數(shù)

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("mark") 
console.log("Printing names array....") 
disp(["Mark","Tom","Mary","John"])

函數(shù)disp()可以接受類型字符串或字符串?dāng)?shù)??組參數(shù)。

在編譯時(shí),它會(huì)生成以下JavaScript代碼:

//Generated by typescript 1.8.10
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("mark");
console.log("Printing names array....");
disp(["Mark", "Tom", "Mary", "John"]);

輸出如下:

Mark 
Printing names array…. 
Mark 
Tom
Mary
John 

聯(lián)合類型和數(shù)組

聯(lián)合類型也可以應(yīng)用于數(shù)組,屬性和接口。以下說明了聯(lián)合類型與數(shù)組的使用。

示例:聯(lián)合類型和數(shù)組

var arr:number[]|string[]; 
var i:number; 
arr = [1,2,4] 
console.log("**numeric array**")  

for(i = 0;i<arr.length;i++) { 
   console.log(arr[i]) 
}  

arr = ["Mumbai","Pune","Delhi"] 
console.log("**string array**")  

for(i = 0;i<arr.length;i++) { 
   console.log(arr[i]) 
} 

程序中聲明數(shù)組。該數(shù)組可以表示數(shù)字集合或字符串集合。

在編譯時(shí),它會(huì)生成以下JavaScript代碼:

//Generated by typescript 1.8.10
var arr;
var i;
arr = [1, 2, 4];
console.log("**numeric array**");

for (i = 0; i < arr.length; i++) {
   console.log(arr[i]);
}
arr = ["Mumbai", "Pune", "Delhi"];
console.log("**string array**");

for (i = 0; i < arr.length; i++) {
   console.log(arr[i]);
}

它的輸出如下:

**numeric array** 
1 
2 
4 
**string array** 
Mumbai 
Pune 
Delhi
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)