与Typescript的骨干关系

时间:2013-06-25 10:29:55

标签: backbone.js typescript backbone-relational

之前我使用过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()。这可能与我的Typescript问题有关吗?如果是这样,我的打字稿中你认为我可以打电话给设置吗?

http://backbonerelational.org/#RelationalModel-setup

1 个答案:

答案 0 :(得分:1)

根据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 PlaygroundJsFiddle

基于文档:http://backbonerelational.org/#RelationalModel-setup