TypeScript接口

接口定義

interface Person {
    name: string
    age: number
}
function print(p: Person) {
    console.log(p.name);
    console.log(p.age);
}
let persion = {age:10, name:"小明"};
print(person)

類型檢查器不會檢查屬性的順序,只要相應的屬性存在并且類型匹配即可。

可選屬性

interface SquareConfig {
    color?: string
    width?: number
}

定義可選屬性只需要在屬性后面加個?即可。

只讀屬性

一些對象屬性只能在對象被創(chuàng)建的時候修改屬性的值,可以用readonly指定只讀屬性。

interface Point {
    readonly x;
    readonly y;
}

readonlyconst的區(qū)別主要在于一個是針對變量一個是針對對象的屬性。

屬性檢查

interface SquareConfig {
    color?: string;
    width?: number;
}
function createSquare(config: SquareConfig): { color: string; area: number } {
    // ...
}

let mySquare = createSquare({ colour: "red", width: 100 });

如果一個對象字面量存在任何“目標類型”不包含的屬性時,就會出現(xiàn)報錯。有兩種方式可以繞開報錯。
類型斷言

let mySquare = createSquare({colour: "red", width: 100} as SquareConfig);

索引簽名

interface SquareConfig {
    color?: string;
    width?: number;
    [propName: string]: any
}

表示對象可能帶有任意數(shù)量的其他屬性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容