Typescript:使用 getter 和普通函数有什么区别

Efe*_*Efe 5 typescript

假设我有一个类,并且我声明了两个方法仅在该类中使用。

// 1.
private get something() { return 0; }

// 2.
private getSomething() { return 0; }
Run Code Online (Sandbox Code Playgroud)

我了解 getter 和 setter,但我很好奇这种情况是否有任何区别?

Tit*_*mir 5

区别在于用于获取值的语法

class Test {
    private get something() { return 0; }

    private getSomething() { return 0; }
    public doStuff(){
        console.log(this.something); // invokes the defined getter but looks like a field not a method call 
        console.log(this.getSomething())
    }
}
Run Code Online (Sandbox Code Playgroud)

在幕后,get/set语法也是 的语法糖Object.defineProperty