gpt4 book ai didi

javascript - Emberjs 和 TypeScript - 计算属性

转载 作者:行者123 更新时间:2023-12-03 12:17:05 25 4
gpt4 key购买 nike

我目前正在尝试开发一些 EmberJs + TypeScript 原型(prototype)。我正在使用这个tutorial我被困在这个point 。我应该如何在 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 类。您必须使用extend方法就像在普通 Javascript 中一样。原因是 Ember 所做的不仅仅是扩展类的原型(prototype)(正如您从计算属性中看到的那样,它不起作用)。

如果您确实想使用类语法,我建议使用 EmberScript这是为 Ember 构建的,或 SweetJS建立一个宏来做到这一点。不幸的是,这两种方法都不能很好地与 Typescript 配合使用。

或者,如果您感觉特别聪明,您可以修改 __extends Typescript 生成的方法并可能实现您想要的方式。

但这对于某些语法糖来说似乎有些过分了。只需使用 extend Ember提供的方法。

关于javascript - Emberjs 和 TypeScript - 计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24630748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com