TypeScript 聯合型別

admin發表於2019-03-19

聯合型別表示一個值可以是幾種資料型別中的某一種。

型別之間使用豎線"|"分隔,程式碼如下:

[typescript] 純文字檢視 複製程式碼
let val:number | string;

表示val值可以是number型別或者string型別的某一種。

再來看一段程式碼例項:

[typescript] 純文字檢視 複製程式碼
function test(value: string, padding: string | number) {
  let arr=["螞蟻部落",4,"青島市南區"];
  if(typeof padding=="string"){
    console.log(value+padding);
  }else if(typeof padding=="number"){
    console.log(value+arr[padding]);
  }
}
test("前端教程","螞蟻部落");
test("前端教程",2);

通過上面的程式碼,可以限定函式的第二引數只能是string和number型別的某一種。

如果一個值是聯合型別,那麼只能訪問聯合型別的共有成員。

程式碼例項如下:

[typescript] 純文字檢視 複製程式碼
class Bird{
  leg=2;
  color="white";
  fly(){
    // code
  }
}
class Insect {
  leg=8;
  color="black";
  eat(){
    // code
  }
}
function antzone(): Bird | Insect {
    return new Bird();
}
let ant = antzone();
ant.color;
ant.leg;
ant.eat()// 報錯,只能訪問共有成員

最後一行會報錯,只能訪問共有成員,比較簡單不多介紹。

相關文章