天天看點

typescript 接口

接口:用來建立某種代碼約定,使得其他開發者在調用某個方法或建立新的類時必須遵循接口所定義的代碼約定

在js裡面沒有接口這個概念,在ts裡面通過兩個關鍵字來支撐接口這個特性

interface

interface IPerson {
    name: string;
    age: number;
}      

在接口裡面,和類一樣,我們可以聲明一些屬性

class Person {
    constructor(public config: IPerson) {}
}      

我們再聲明一個類,這個類裡面接收一個IPerson類型的參數,這時候,我們看到了接口的第一個用法,它作為一個方法參數的類型聲明。這個時候去調用的時候,它會去檢查,是不是接口聲明的那些樹形,比如

var p1 = new Person({
    name: 'zina',
    age: 18
})      

隻有這樣才不報錯,如果多傳一個屬性或少傳一個屬性都會報錯。這是接口的第一個用法。當你的接口用作方法的參數的類型聲明時,在調用的時候,ts會去檢查你傳入的這個參數,是否滿足接口所聲明的所有屬性

implements

interface Animal {
    eat();
}
class Sheep implements Animal{ }      

這裡我們聲明了一個Animal的接口,它有個方法叫做eat。再聲明了一個類,這裡有個關鍵字implements。它是聲明Sheep這個類實作Animal這個接口。

當一個類實作一個接口的時候,它必須實作這個接口裡聲明的方法

interface Animal {
    eat();
}


class Sheep implements Animal{
    eat() {
        console.log('im eat grass')
    }
}


class Tiger implements Animal{
    eat() {
        console.log('i eat meat')
    }
}      

繼續閱讀