Javascript 将构造函数迁移到TypeScript
因此,我有一个相当大的sails.js应用程序,我计划在未来几个月内将代码库迁移到TypeScript,我修改了sails moduleloader以使用ts节点(我可能很快就会打开一个pull请求),这一切都很好 问题是,我对我准备的打字稿不是很满意,我想知道是否有人有任何建议 在帆上,钩子看起来像这样:Javascript 将构造函数迁移到TypeScript,javascript,node.js,typescript,sails.js,Javascript,Node.js,Typescript,Sails.js,因此,我有一个相当大的sails.js应用程序,我计划在未来几个月内将代码库迁移到TypeScript,我修改了sails moduleloader以使用ts节点(我可能很快就会打开一个pull请求),这一切都很好 问题是,我对我准备的打字稿不是很满意,我想知道是否有人有任何建议 在帆上,钩子看起来像这样: module.exports = function(sails) { return { initialize: function(next) { return nex
module.exports = function(sails) {
return {
initialize: function(next) {
return next();
}
};
};
我最初想到的打字稿是
class Hook {
constructor(public sails: any) {}
initialize(next: Function) {
return next();
}
}
export = function(sails: any) {
return new Hook(sails);
}
但是我觉得导出功能不是很好,而且存在一个问题,即sails绑定了范围,因此这将导致一些问题。解决方案是使用胖箭头,但我不是我提出的解决方案的超级粉丝
class Hook {
constructor(public sails: any) {}
initialize = (next: Function) => {
return next();
};
}
export = function(sails: any) {
return new Hook(sails);
}
有什么建议吗
谢谢我不确定您到底在寻找什么,但是如果您不想使用
类钩子
进行完全OOP,您也可以使用接口钩子
。这样,您就可以保留原始代码,只需向其中添加一些类型
interface Hook {
initialize(next: Function);
}
export = function(sails: any) : Hook {
return {
initialize: function(next) {
return next();
}
}
}