Javascript Emberjs和TypeScript-计算属性

Javascript Emberjs和TypeScript-计算属性,javascript,ember.js,typescript,Javascript,Ember.js,Typescript,我目前正在尝试开发一些EmberJs+TypeScript原型。我在用这个,我被困在这里了。如何在TypeScript中创建计算属性 我尝试过类似的方法,但不起作用: module App { export class TodoController extends Em.ObjectController { constructor() { super(); } public isCompleted = ((key, value) => {

我目前正在尝试开发一些EmberJs+TypeScript原型。我在用这个,我被困在这里了。如何在TypeScript中创建计算属性

我尝试过类似的方法,但不起作用:

module App {
export class TodoController extends Em.ObjectController {

    constructor() {
        super();
    }

    public isCompleted = ((key, value) => {
        var model = this.get('model');
        if (value === undefined) {
            // property being used as a getter
            return model.get('isCompleted');
        } else {
            // property being used as a setter
            model.set('isCompleted', value);
            //model.save();
            return value;
        }
    }).property('model.isCompleted');
}
}

不能使用typescript类语法扩展Ember类。您必须像在普通Javascript中一样使用
extend
方法。原因是Ember不仅仅扩展了类的原型(正如您从计算属性不工作中看到的)

如果您真的想使用类语法,我建议您要么使用为Ember构建的类语法,要么构建一个宏来实现。不幸的是,这两种方法都不能很好地用于Typescript

或者,如果您觉得自己特别聪明,可以修改Typescript生成的
\uu extends
方法,并可能通过这种方式实现您想要的

但对于一些语法上的糖类来说,这一切似乎都有些过头了。只需使用Ember提供的
extend
方法即可