Typescript で Backbone を使用しようとしていますが、コレクションが保持するモデルのタイプを定義する方法について 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() は戻りモデルが特定の型であるとは考えていないため、これは起こっていません。