我以前使用过Backbone Relational,但没有使用Typescript,并且在入门时遇到了问题:
/// <reference path="../Typings/backbone.d.ts"/>
/// <reference path="../Typings/backbone.relational.d.ts"/>
module Application.Models {
export class Entity extends Backbone.RelationalModel {
constructor(options?) {
super(options);
}
}
}
var e = new Models.Entity()
这引发了一个错误:
Uncaught TypeError: Object function Entity() {
_super.call(this);
} has no method 'initializeModelHierarchy'
更新:
我在Backbone Relational文档中发现了这一点,该文档指出,使用CoffeeScript语法时不会自动调用setup()。这可能与我的打字问题有关吗?如果是这样的话,在我的打字稿中,你认为我可以在哪里调用setup?
http://backbonerelational.org/#RelationalModel-设置
根据Backbone文档设置实体的正确方法是:
declare module Backbone{
export class RelationalModel{
constructor(options?:any);
static setup():any;
}
}
class MyModel extends Backbone.RelationalModel {
constructor(options?) {
super(options);
}
}
MyModel.setup();
var x = new MyModel();
TypeScript Playground和JsFiddle
基于文档:http://backbonerelational.org/#RelationalModel-设置