ts的介面有兩種,乙個是物件型別介面,乙個是函式型別介面
先來看物件型別的介面
inte***ce a
var obj1:a=
/* 介面定義了什麼屬性,該介面型別的物件就只能有這些屬性,
如果再新增其他屬性則會報錯。?表示該屬性可以沒有*/
inte***ce a
inte***ce b
var result=,]}
function fn(result:b):void
fn(result)
/*本來介面a是沒有***屬性的,但是這樣寫並不會報錯
如果直接把result的值帶進fn函式則會報錯,這時候可以使用泛型或者as關鍵字進行斷言*/
function fn(obj:b):void
fn(,]})
//或者
fn(,]} as b)
然後是函式型別的介面
inte***ce a
var b:a=(()=>)as a;
b.dosomething=():void=>
//要將b斷言為a型別,否則會報錯
然後還可以用類實現介面
inte***ce a
class test implements a
public name:string;
dosomething():void
}
介面還可以繼承介面
inte***ce a
inte***ce b extends a
//b介面也有a介面的屬性,可以重寫a介面的屬性和方法,但是屬性只能設定包含a介面屬性型別在內的的型別
ts 學習筆記 高階篇 1
目錄列舉 型別別名用來給乙個型別起個新名字 type name string type nameresolver string type nameorresolver name nameresolver function getname n nameorresolver name else 上例中,...
TS學習筆記 范型
1.我們這裡寫了乙個函式,傳入的引數我們規定是number型別。如下 接著如果我們又要寫乙個函式實現的業務跟上面這個一樣,但傳入的引數型別卻規定要string 那我們就得重新寫乙個一模一樣的函式,函式內的 如果很多很多,那顯然這是不可取的。那如果我們把他的型別規定成any不就可以了嗎,但是這樣做的話...
TS學習筆記(ts基礎型別 型別別名)
中文文件 home.html 與js不同的是 ts的變數都可以型別註解 後面註明變數型別 let isdone boolean false 與js的型別相比多出的 比如列舉 個人理解 將物件資料化了 類似陣列通過下角標得到值 enum color let c color color 0 consol...