Typescript-union

提供:Dev Guides
移動先:案内検索

TypeScript-ユニオン

TypeScript 1.4では、プログラムで1つまたは2つのタイプを組み合わせることができます。 ユニオン型は、いくつかの型のいずれかになりうる値を表現する強力な方法です。 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)

上記の例では、変数の型はunionです。 これは、変数がその値として数値または文字列のいずれかを含むことができることを意味します。

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