所以我有一个相当大的sails.js应用程序,并且我计划在接下来的几个月内将代码库迁移到TypeScript,我修改了sails moduleloader以使用ts-node(我可能会打开)很快就会提出请求)这一切都很好。
问题在于,我对我提出的TypeScript不太满意,并想知道是否有人有任何建议。
在帆中,钩子看起来像这样:
module.exports = function(sails) {
return {
initialize: function(next) {
return next();
}
};
};
我最初提出的TypeScript是
class Hook {
constructor(public sails: any) {}
initialize(next: Function) {
return next();
}
}
export = function(sails: any) {
return new Hook(sails);
}
但我没有发现导出功能很好,并且存在风帆绑定范围的问题,因此这会导致一些问题。解决方案是使用胖箭,但我并不是我想出的解决方案的忠实粉丝...
class Hook {
constructor(public sails: any) {}
initialize = (next: Function) => {
return next();
};
}
export = function(sails: any) {
return new Hook(sails);
}
有什么建议吗?
由于
答案 0 :(得分:0)
我不确定你到底在寻找什么,但是如果你不想完全使用class Hook
进行OOP,你也可以选择interface Hook
。这样,您可以保留原始代码,只需添加一些类型。
interface Hook {
initialize(next: Function);
}
export = function(sails: any) : Hook {
return {
initialize: function(next) {
return next();
}
}
}