我正在尝试将 Backbone 与 Typescript 一起使用,并且我没有遵循 Typescript 的语法来定义集合将包含哪种类型的模型。
module Application.Collections {
export class Library extends Backbone.Collection {
model = Application.Models.Book; // THIS LINE DOESN'T WORK
constructor(options?) {
super(options);
};
}
}
module Application.Models {
export class Bookextends Backbone.Model {
constructor(options?) {
super(options);
}
}
}
我得到的错误是:
Type of overridden member 'model' is not subtype of original
member defined by type 'Collection';
我也不清楚什么时候应该将这样的定义放在构造函数中,或者它是否重要。我试过了:
constructor(options?) {
super(options);
this.model = Application.Models.Entity;
};
其中说:
Cannot convert 'new(options?:any) => Models.Template' to 'Backbone.Model'
我真正想做的是定义一个具有一些实用方法的模型类型 - 当从服务器获取基本模型数据时,我希望模型根据服务器数据初始化和计算一些便利属性。但这并没有发生,因为 collection.fetch() 不认为返回模型是任何特定类型的。