/* typeScript中的接口 接口擴展 */ /* 接口的作用:在面向對象的編程中,接口是一種規范的定義,它定義了行為和動作的規范,在程序設計里面,接口起到一種限制和規范的作用。接口定義了某一批類所需要遵守的規范,接口不關心這些類的內部狀態數據,也不關心這些類里方法的實現細節,它只規定這批類里必須提供某些方法,提供這些方法的類就可以滿足實際需要。 typescrip中的接口類似於java,同時還增加了更靈活的接口類型,包括屬性、函數、可索引和類等。 定義標准。 */ // 可索引接口:數組、對象的約束 (不常用) //ts定義數組的方式 /* var arr:number[]=[2342,235325] var arr1:Array<string>=['111','222'] */ //可索引接口 對數組的約束 // interface UserArr{ // [index:number]:string // } // // var arr:UserArr=['aaa','bbb']; // // console.log(arr[0]); // var arr:UserArr=[123,'bbb']; /*錯誤*/ // console.log(arr[0]); //可索引接口 對對象的約束 // interface UserObj{ // [index:string]:string // } // var arr:UserObj={name:'張三'}; //接口擴展:接口可以繼承接口 // interface Animal{ // eat():void; // } // interface Person extends Animal{ // work():void; // } // class Web implements Person{ // public name:string; // constructor(name:string){ // this.name=name; // } // eat(){ // console.log(this.name+'喜歡吃饅頭') // } // work(){ // console.log(this.name+'寫代碼'); // } // } // var w=new Web('小李'); // w.eat(); interface Animal{ eat():void; } interface Person extends Animal{ work():void; } class Programmer{ public name:string; constructor(name:string){ this.name=name; } coding(code:string){ console.log(this.name+code) } } class Web extends Programmer implements Person{ constructor(name:string){ super(name) } eat(){ console.log(this.name+'喜歡吃饅頭') } work(){ console.log(this.name+'寫代碼'); } } var w=new Web('小李'); // w.eat(); w.coding('寫ts代碼');