typescript介面定義
阿新 • • 發佈:2018-12-18
介面描述:
介面的使用,這裡講的是介面的使用 (其實就是定義一些規定)
介面定義
interface Accountable{
getIncome():number;
}
介面實現
如果實現了一個指定的介面,那麼必須實現這個接口裡面多定義的所有方法,這些方法的實現必須與介面定義裡面的簽名完全一致。
class Firm implements Accountable{
getIncome():number {
//...
}
}
ts介面也支援定義屬性,如我們可以在上述介面中引入一個名為accountNumber的欄位,型別為string:
interface Accountable{
accountNumber: string;
getIncome(): number;
}
可以在類裡面把accountNumber定義成一個欄位或者一個getter。
介面繼承
介面之間可以互相繼承:
interface Firm extends Accountable {
ssn: string;
}
介面還支援多繼承:
interface Accountable { accountNumber: string; getIncome(): number; } interface Human { age: number; name: number; } interface Firm extends Accountable,Human{ ssn: string; }
實現多個介面
如果類的行為是很多介面中定義的行為的並集,那麼類可以實現所有這些介面:
class Person implements Human,Accountable {
age: number;
name: string;
accountNumber: string;
getIncome(): number {
//...
}
}
介面例項
//資料介面 interface Learn{ sex:string, infer:string, ha?:Boolean, //可選引數 } //函式介面 interface Say{ (name:string,sex:string):boolean; } let le:Learn = {sex:'man',infer:'histroy',ha:true}; let say:Say; say = function(name:string,sex:string):boolean{ let flag = name.search(sex); return (flag != -1) } console.log(le); console.log(say('高、富、帥、錢','窮'));
注意點:
- 只能給介面內部的定義的資料賦值
- 定義函式介面的話,返回值必須和介面定義的返回值型別一致