假设我们有一个带有一个属性的此类:
class iPhone {
private _year: number;
public constructor (year: number) {
this._year = year;
}
get year(): number {
return this._year;
}
set year(value: number) {
this._year = value;
}
}
我想以其他语法与此构造函数一起使用:
class iPhone {
public constructor (private year: number) {
}
// Getters and setters ????
}
我的问题是这样的:使用第二种语法,不可能使用私有变量并进行获取和设置?
答案 0 :(得分:2)
我的问题是这样,使用第二种语法无法使用私有变量并进行获取和设置?
您的代码确实使用了私有变量。您可能遇到的问题是该私有变量称为year
,然后听起来您也尝试创建一个名为year
的公共访问器。您不能有两个名称相同的属性。
您可以像在第一个示例中那样使用其他名称:
constructor(private _year: number)
...但是参数名称和属性名称都将带有_
。
侧面说明:getter中的类型必须与setter中的类型相同。您的问题中有number
和boolean
,这是行不通的。