带有getter和setter的构造方法属性(私有)

时间:2020-06-04 12:01:25

标签: typescript

假设我们有一个带有一个属性的此类:

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 ????
}

我的问题是这样的:使用第二种语法,不可能使用私有变量并进行获取和设置?

1 个答案:

答案 0 :(得分:2)

我的问题是这样,使用第二种语法无法使用私有变量并进行获取和设置?

您的代码确实使用了私有变量。您可能遇到的问题是该私有变量称为year,然后听起来您也尝试创建一个名为year的公共访问器。您不能有两个名称相同的属性。

您可以像在第一个示例中那样使用其他名称:

constructor(private _year: number)

...但是参数名称和属性名称都将带有_

Playground link


侧面说明:getter中的类型必须与setter中的类型相同。您的问题中有numberboolean,这是行不通的。