backbone.js - Backbone 路由在转换为 TypeScript 时不起作用

标签 backbone.js typescript backbone-routing

我正在尝试将基本的 Backbone.js 路由器声明转换为 TypeScript。

var AppRouter = Backbone.Router.extend({
    routes: {
        "*actions": "defaultRoute"
    },

    defaultRoute: function () {
        document.write("Default Route Invoked");
    }
});

var app_router = new AppRouter();

Backbone.history.start();

我转换后的代码如下,但不起作用:

class AppRouter extends Backbone.Router {
    routes = {
        "*actions": "defaultRoute"
    }

    defaultRoute() {
        document.write("Default Route Invoked");
    }
}

var app_router = new AppRouter();

Backbone.history.start();

我没有收到编译时或运行时错误,但代码无法运行。为什么?

最佳答案

我看过 Backbone.Router.extends,它不是基本的原型(prototype)扩展 - 所以你不能直接从 Backbone.Router.extends 切换code> 到 TypeScript 类扩展。

我会更改您的 TypeScript 文件,使其看起来更像您的原始 JavaScript - 您仍然可以获得智能感知和类型检查的好处 - 您只是没有使用类:

var AppRouter = Backbone.Router.extend({
    routes: {
        "*actions": "defaultRoute"
    },

    defaultRoute: function () {
        document.write("Default Route Invoked");
    }
});

var app_router = new AppRouter();

Backbone.history.start();

关于backbone.js - Backbone 路由在转换为 TypeScript 时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14594996/

相关文章:

backbone.js - Handlebars 自定义助手 - 迁移到 Webpack

javascript - Backbone 收集到 morris.js d ="M,0,0"错误

将可能为空(但不是空)的值传递给匿名回调时, typescript 会提示

angular - 处理 Ionic 3 应用程序 401 错误的正确工作流程

javascript - Backbone 路由器路由中的感叹号

backbone.js - Bootstrap scrollspy 和 Backbone 路由

javascript - Backbone.js 集合在获取操作后不调用 "Reset"事件

javascript - Backbone.js Collection View 通过模型 View

node.js - 类型 'x' 上不存在 Mongoose 属性 'Document'

javascript - PlayFramework 2.1 : Loading page-specific Javascripts with Require. js 和 Backbone.js