typescript(八)--ts中介面(可索引型、類型別)
阿新 • • 發佈:2019-01-10
如題,本篇我們介紹下ts中可索引型(陣列型)介面 和類型別介面。
可索引型介面用於構建hash雜湊、堆疊等。
類型別介面就是傳統面嚮物件語言(如java)中的介面,在傳統面嚮物件語言(如java)中極為常見。
06_interface_arr.ts 可索引介面
/* * ts中介面 * 可索引(陣列型)介面 陣列 可索引物件(hash、堆疊) 不常用 * */ //可索引介面 interface UserArr{ //定義索引key為number型別,索引值為string型別 [index:number]:string } var arr1:UserArr; arr1=["aa","bb","cc"]; var arr2: UserArr arr2={1:"hello",2:"world"}; console.log(arr1); console.log(arr2);
07_interface_class.ts 類型別介面
/* * ts中介面 * 類型別介面: 對類的規範 ,這種型別的介面在傳統面嚮物件語言中最為常見, * 比如java中介面就是這種類型別的介面 。這種介面與抽象類比較相似,但是介面只能含有為抽象方法、成員屬性。 * 實現類中必須實現介面中所有的抽象方法和成員屬性。 * */ interface Animal{ name:string; eat(s:string):string; } //實現介面使用implements關鍵字,繼承 使用extends關鍵字 //狗類 class Dog implements Animal{ name:string; constructor(name:string){ this.name=name; } //實現介面中抽象方法 eat(s){ return this.name+"吃肉:"+s; } } //貓類 class Cat implements Animal{ name:string; constructor(name:string){ this.name=name; } //實現介面中抽象方法 eat(s){ return this.name+"吃魚:"+s; } } var dog=new Dog("tom"); var cat=new Cat("kitty"); console.log(dog.eat("五花肉")); console.log(cat.eat("烏鱧魚"));