TypeScript-類可選屬性和參數屬性


可選屬性

  • 和接口中的可選屬性一樣, 可傳可不傳的屬性

注意點

  • TS 中如果定義了實例屬性, 那么就必須在構造函數中使用, 否則就會報錯

錯誤示例:

class Person {
    name: string;
    age: number;
}

正確示例:

class Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }
}

let p = new Person('BNTang', 18);
console.log(p);

利用 可選參數 解決不想使用的屬性:

class Person {
    name: string;
    // 可選屬性
    age?: number;

    constructor(name: string, age?: number) {
        this.name = name;
        this.age = age;
    }
}

let p = new Person('BNTang');
console.log(p);

在來看看直接定義一個構造函數的情況下,通過對於的類創建出來的對象是什么樣子的:

class Person {
    constructor(name: string, age: number) {
    }
}

let p = new Person('BNTang', 18);
console.log(p);

image-20211128215341107

參數屬性

  • 一句話搞定實例屬性的接收和定義
class Person {
    constructor(public name: string, public age: number) {
    }
}

let p = new Person('BNTang', 18);
console.log(p);

如上代碼類同如下代碼:

class Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }
}

end02


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM