標籤:hang anim 對象 string imp script var 增加 編程
介面我感覺是很常用的一塊定義標準:介面的作用:在物件導向的編程中,介面是一種規範的定義,它定義了行為和動作的規範,在程式設計裡面,介面起到一種限制和規範的作用。介面定義了某一批類所需要遵守的規範,介面不關心這些類的內部狀態資料,也不關心這些類裡方法的實現細節,它只規定這批類裡必須提供某些方法,提供這些方法的類就可以滿足實際需要。 typescrip中的介面類似於java,同時還增加了更靈活的介面類型,包括屬性、函數、可索引和類等。1)屬性類介面舉個例子分析下interface FullName{ firstName:string; secondName?:string;}function printName(name:FullName){ console.log(name.firstName+‘--‘+name.secondName);}var obj={ age:20, firstName:‘張‘, secondName:‘三‘};printName(obj);注意點如下一。定義介面用分號(;)隔開。二。介面內的屬性可以用?來表示這個介面可以不傳三。當函數調用時,參數不可直接寫用對象,ts會報錯有未知屬性,需像上文一樣先賦值給一個值,函數再調用的時候傳這個值。2)函數類介面對方法傳入的參數 以及傳回值進行約束interface encrypt{ (key:string,value:string):string;}var md5:encrypt=function(key:string,value:string):string{ return key+‘----‘+value;}console.log(md5(‘name‘,‘zhangsan‘));3)可索引介面對數組的約束interface UserArr{ [index:number]:string}對對象的約束 interface UserObj{ [index:string]:string }其實可以看出來區別就是數組下標時number,但是對象下標就是string。4)類類型介面對類的約束 和 抽象類別抽象有點相似interface Animal{ name:string; eat(str:string):void;}class Dog implements Animal{ name:string; constructor(name:string){ this.name=name; } eat(){ console.log(this.name+‘吃糧食‘) }}注意點如下:一。在interface內的所有屬性或者方法,必須在實現的類中有。二。interface是類實現介面的方法。5)介面的拓展介面可以繼承介面,用extends實現。一個類既可以繼承(extends)一個類,也可以順便實現(interface)一個介面。
typeScript入門(三)介面