gpt4 book ai didi

backbone.js - 将 Backbone 结构转换为 TypeScript

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:16 25 4
gpt4 key购买 nike

查看 Backbonejs 对 extend function 的实现,它表明它不是基本的原型(prototype)扩展,并且当主干扩展直接转换为 TypeScript 类时,某些东西会停止运行。将 Backbonejs 的每个组件(模型、集合、路由、 View 、历史记录)转换为 typescript 类并确保没有任何问题的正确方法是什么?

谢谢!

更新:this Q/A中的答案也可以用于其他 Backbone 结构。

最佳答案

这是因为 TypeScript 生成的代码首先调用 Router 构造函数,然后声明路由。

TypeScript 编译器生成的代码

...
function AppRouter() {
_super.apply(this, arguments);

this.routes = { // <= routes defined after _super constructor
"*actions": "defaultRoute"
};
}
...

要解决此问题,只需在 TypeScript 对象构造函数上调用 Backbone Router 函数 _bindRoutes()

例子:

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

constructor(){
super();
// call _bindRoutes() here function to bind your routes
(<any>this)._bindRoutes();
}

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

var app_router = new AppRouter();

Backbone.history.start();

下载示例代码 here

关于backbone.js - 将 Backbone 结构转换为 TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14632714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com