TypeScript-ユニオン

TypeScript 1.4は、プログラムに1つまたは2つのタイプを組み合わせる機能を提供します。共用体タイプは、いくつかのタイプの1つになり得る値を表現するための強力な方法です。2つ以上のデータ型は、パイプ記号(|)を使用して結合され、共用体型を示します。つまり、共用体型は、縦棒で区切られた一連の型として記述されます。

構文:ユニオンリテラル

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)

上記の例では、変数の型は共用体です。これは、変数に値として数値または文字列を含めることができることを意味します。

コンパイル時に、次の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"])

関数disp()は、文字列型または文字列配列のいずれかの引数を受け入れることができます。

コンパイル時に、次の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

共用体の型と配列

共用体タイプは、配列、プロパティ、およびインターフェイスにも適用できます。以下は、配列での共用体型の使用を示しています。

例:共用体の型と配列

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]) 
}

プログラムは配列を宣言します。配列は、数値コレクションまたは文字列コレクションのいずれかを表すことができます。

コンパイル時に、次の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