TypeScript基本語法---08聯合類型(類型別名 type、字符串字面量類型)

聯合類型(Union Types)可以通過管道(|)將變量設置多種類型,賦值時可以根據設置的類型來賦值。表示取值可以爲多種類型中的一種,使用 | 分隔每個類型。

注意:只能賦值指定的類型,如果賦值其它類型就會報錯。

創建聯合類型的語法格式如下:

Type1|Type2|Type3 
//聯合類型
var uniteType: string|number = 1122;
console.log('數字:'+uniteType);
uniteType = 'muzidigbig';
console.log('字符串:'+uniteType);

聯合類型數組

//聯合類型數組
var uniteTypeArr: number[]|string[];
uniteTypeArr = [1,2,4];
console.log('數字數組:'+uniteTypeArr);
uniteTypeArr = ['muzi','digbig',',muzidigbig'];
console.log('字符串數組:'+uniteTypeArr);

 

類型別名 type

使用 type 創建類型別名

類型別名用來給一個類型起個新名字,多用於聯合類型:

type Name = string;
type GetName = () => string;
type NameOrGetter = Name | GetName;
function getName(n: NameOrGetter): Name {
    if (typeof n === 'string') {
        return n;
    } else {
        return n();
    }
}

type 聲明可以定義聯合類型,基本類型等多種類型,而 interface 只能定義對象類型

 

字符串字面量類型

字符串字面量類型用來約束取值只能是某幾個字符串中的一個

type EventNames = 'click' | 'scroll' | 'mousemove';
function handleEvent(ele: Element, event: EventNames) {
    // do something
}

handleEvent(document.getElementById('hello'), 'scroll');  // 沒問題
handleEvent(document.getElementById('world'), 'dbclick'); // 報錯,event 不能爲 'dbclick'

 

 

 

發佈了246 篇原創文章 · 獲贊 260 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章