可選屬性
- 和接口中的可選屬性一樣, 可傳可不傳的屬性
注意點
- 在
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);
參數屬性
- 一句話搞定實例屬性的接收和定義
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;
}
}