我想在模块内创建一个具有get/set属性的变量。
我看到了一些在类中创建get/set属性的工作示例,如下所示:

class MyClass {
    private view;
    get View() { return this.view; }
    set View(value) { this.view = value }
}

但是我想在模块内部做同样的事情:
module MyModule {
    export var view;
    //I want to create get/set methods for view property here
}

我怎么做 ?

最佳答案

我认为这只是一个疏忽。我将向设计团队提出这个问题(除了“我们尚未实现”之外,没有其他明显的原因会被禁止)。解决缺乏一流语言支持的问题非常简单:

module Bar {
    var _qua = 42;

    declare export var qua: number;
    Object.defineProperty(Bar, 'qua', {
        get: function() { return _qua; },
        set: function(value) { _qua = value; }
    });
}

// Works
var x = Bar.qua;
console.log(x);
Bar.qua = 19;
console.log(Bar.qua);

10-04 15:22