1. 程式人生 > >typescript(八)--ts中介面(可索引型、類型別)

typescript(八)--ts中介面(可索引型、類型別)

如題,本篇我們介紹下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("烏鱧魚"));