1. 程式人生 > >typeScript入門(三)接口

typeScript入門(三)接口

返回值 狀態 md5 key index cond 賦值 ava 接口

接口我感覺是很常用的一塊 定義標準: 接口的作用:在面向對象的編程中,接口是一種規範的定義,它定義了行為和動作的規範,在程序設計裏面,接口起到一種限制和規範的作用。接口定義了某一批類所需要遵守的規範,接口不關心這些類的內部狀態數據,也不關心這些類裏方法的實現細節,它只規定這批類裏必須提供某些方法,提供這些方法的類就可以滿足實際需要。 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入門(三)接口