网站搜索

TypeScript 属性


我很好奇其他使用 TypeScript 的人是否也在实现属性 (http://www.codingdefined.com/2015/05/get-and-set-property-in-typescript.html)。

我倾向于喜欢使用属性,即使在我的 TypeScript 代码中也会如此,但我团队中的其他人认为这有点过头。出于你在 C# 代码中使用属性的同样原因(为什么在 C# 中使用简单属性而不是字段?),我认为在 TypeScript 中使用属性也是好的。

这不是一个“我想知道别人是否同意我的观点”的问题,而是我想知道其他人是否真的在 TypeScript 中使用属性,以及为什么使用或不使用。这非常类似于别人对 C# 属性提出的同样问题。

我实际上找不到有人在问关于 TypeScript 的问题。

答案#1

我通常不使用它们,除非我需要它们。最棒的是,我们可以一开始使用公共变量,然后根据需要添加getter和setter。

所以我通常是这样开始的:

class Test {
    testField: string = "";
}

然后当我意识到我需要一个 getter 和 setter 时,我把它改成了:

class Test {
    private _testField: string = null;
    get fieldName() : string {
        return this._testField;
        doSomething();
    }
    set fieldName(name : string) {
        doSomethingElse();
        this._testField = name;
    }
}

在 TypeScript 中,如果 getters 和 setters 只是获取和设置值,我们不必添加它们。这与 C# 等语言形成对比,在 C# 中,如果你在 getter 或 setter 中添加逻辑,会破坏向后兼容性。