0
假設我有以下類:演員對象的一些類,並稱類函數對象
class Person {
name: string;
age: number;
country: string;
canVote(): boolean {
return (this.country === "SomeCountry" && this.age >= 16) || (this.country === "SomeOtherCountry" && this.age >= 18);
}
}
是否有打字稿任何方式投含有name
,age
和country
屬性是一個對象一個Person
類的實例,我可以打電話canVote
,就像這樣? (現在,這並不編譯,因爲canVote
丟失)
let person: Person = {
name: "SomePerson",
age: 42,
country: "SomeCountry"
}
console.log(person.canVote());
我知道有參數特性,這將讓我做到以下幾點:
class Person {
constructor(readonly name: string, readonly age: number, readonly country: string) {
}
canVote(): boolean {
return (this.country === "SomeCountry" && this.age >= 16) || (this.country === "SomeOtherCountry" && this.age >= 18);
}
}
let person = new Person("SomePerson", 42, "SomeCountry");
不過,我想這會得到不清楚如果屬性數量增加,或者我想讓一個可選屬性未設置,那麼速度相當快。