TypeScriptの型 – 共用体型

共用体型(Union Types)は、パイプ(|)によって変数を異なる型に設定し、設定された型に従って値を割り当てることができます。

ヒント:指定した型のみを割り当てることができます。他の型を割り当てると、エラーが報告されます。

共用体型を作成するための構文は次のとおりです。

Type1|Type2|Type3 

実例

共用体型を宣言します。

var val:string|number 
val = 12 
console.log("数字:"+ val) 
val = "Ceodata" 
console.log("文字列:" + val)

上記のコードをコンパイルして、次のJavaScriptコードを取得します。

var val;
val = 12;
console.log("数字:" + val);
val = "Ceodata";
console.log("文字列: " + val);

出力結果は次のとおりです。

数字: 12
文字列: Ceodata

他の型を割り当てると、エラーが報告されます。

var val:string|number 
val = true 

共用体型を関数のパラメータとして使用することもできます。

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("Runoob") 
console.log("配列を出力します....") 
disp(["Ceodata","Google","Yahoo","Facebook"])

上記のコードをコンパイルして、次の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("Runoob");
console.log("出力結果は次のとおりです");
disp(["Ceodata", "Google", "Yahoo", "Facebook"]);

出力結果は次のとおりです。

Ceodata
配列を出力します....
Ceodata
Google
Yahoo
Facebook

共用体型配列

配列を共用体型として宣言することもできます。

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 = ["Ceodata","Google","Yahoo"] 
console.log("**文字列配列**")  
 
for(i = 0;i<arr.length;i++) { 
   console.log(arr[i]) 
}

上記のコードをコンパイルして、次のJavaScriptコードを取得します。

var arr;
var i;
arr = [1, 2, 4];
console.log("**数字の配列**");
for (i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}
arr = ["Ceodata", "Google", "Yahoo"];
console.log("**文字列配列**");
for (i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

出力結果は次のとおりです。

**数字の配列**
1
2
4
**文字列配列**
Ceodata
Google
Yahoo
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です