Javascript Emberjs和TypeScript-计算属性
我目前正在尝试开发一些EmberJs+TypeScript原型。我在用这个,我被困在这里了。如何在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) => {
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
方法即可