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