TypeScript高階型別之交叉型別與聯合型別

2021-10-01 16:12:44 字數 651 閱讀 4394

所謂的高階型別就是指ts為了保障語言的靈活性,所引入的一些語言特性,這些特性將有助於我們應對複雜多變的開發場景。

將多個型別合併成乙個型別,新的型別將具有所有型別的特性,所以交叉型別特別適用物件混入的場景。

inte***ce doginte***ce

inte***ce catinte***ce

let pet:doginte***ce & catinte***ce=,

jump(){}

}

宣告的型別並不確定,可以為多個型別中的乙個

let a:number| string='111';

//限定變數的取值

let ba:'a' | 'b' | 'c'; //字串的字面量聯合型別

let ca:1|2|3 ; //數字的聯合型別

物件的聯合型別

class dog implements doginte***ce

eat(){}

}class cat implements catinte***ce

eat(){}

}enum master ;

function getpet(master:master)

TypeScript高階型別之條件型別

含義 是一種由條件表示式所決定的型別 基本語法 t extends u x y代表的含義為 如果型別t可以被賦值給型別u 那麼就是x型別,否則就是y型別 作用 條件型別使型別具有了不唯一性,增加了語言的靈活性。下面我們來看乙個最基本的例子 type typename t extends string...

typeScript筆記 高階型別

inte ce obj 同態型別 只能對映存在的 type readonlyobj readonly 唯讀 type partialobj partial 介面所有的屬性變成可選的 type pickobj pick 要抽取的介面的key 非同態型別 開定義新的屬性 type recordobj r...

TypeScript 基礎型別

基礎型別可以依據是否含有型別關鍵字分為兩類 注意 所有型別關鍵字都是小寫的。注 這種分類並不嚴謹,分類的目的僅僅用於幫助記憶型別用來指定變數的型別,相容的型別之間才能進行賦值 傳參等操作。宣告變數型別使用變數名 型別格式,如let decimal number 10,宣告之後decimal就只能接受...