1 /* 2 接口的作用:在面向對象的編程中,接口是一種規范的定義,它定義了行為和動作的規范,在程序設計里面,接口起到一種限制和規范的作用。接口定義了某一批類所需要遵守的規范,接口不關心這些類的內部狀態數據,也不關心這些類里方法的實現細節,它只規定這批類里必須提供某些方法,提供這些方法的類就可以滿足實際需要。 typescrip中的接口類似於java,同時還增加了更靈活的接口類型,包括屬性、函數、可索引和類等。 3 4 定義標准。 5 6 */ 7 8 9 // 可索引接口:數組、對象的約束 (不常用) 10 11 12 13 //ts定義數組的方式 14 /* 15 var arr:number[]=[2342,235325] 16 17 18 var arr1:Array<string>=['111','222'] 19 */ 20 21 22 23 //可索引接口 對數組的約束 24 // interface UserArr{ 25 // [index:number]:string 26 // } 27 28 29 // // var arr:UserArr=['aaa','bbb']; 30 31 // // console.log(arr[0]); 32 33 34 35 // var arr:UserArr=[123,'bbb']; /*錯誤*/ 36 37 // console.log(arr[0]); 38 39 40 //可索引接口 對對象的約束 41 42 43 44 45 // interface UserObj{ 46 47 // [index:string]:string 48 // } 49 50 51 // var arr:UserObj={name:'張三'}; 52 53 54 55 56 57 58 //類類型接口:對類的約束 和 抽象類抽象有點相似 59 60 61 interface Animal{ 62 name:string; 63 eat(str:string):void; 64 } 65 66 class Dog implements Animal{ 67 68 name:string; 69 constructor(name:string){ 70 71 this.name=name; 72 73 } 74 eat(){ 75 76 console.log(this.name+'吃糧食') 77 } 78 } 79 80 81 var d=new Dog('小黑'); 82 d.eat(); 83 84 85 class Cat implements Animal{ 86 name:string; 87 constructor(name:string){ 88 89 this.name=name; 90 91 } 92 eat(food:string){ 93 94 console.log(this.name+'吃'+food); 95 } 96 } 97 98 var c=new Cat('小花'); 99 c.eat('老鼠');