我试图将Node.js项目转换为TypeScript,尽管在此过程中我没有遇到很多困难,但代码库却很少出现这样的陷阱,主要是在启动代码中:
function prepareConfiguration() {
let cloudConfigLoader = require('../utils/cloud-config');
return cloudConfigLoader.ensureForFreshConfig().then(function() {
//do some stuff
});
}
我可能只需要建议一种重构方法,只需较少的代码更改即可使其以TypeScript方式工作。
针对评论,更多详细信息: 这需要加载节点模块,而不是JSON文件。 sureForFreshConfig函数从该模块与云服务联系,以加载值列表以重建配置状态对象。 问题在于mdule是在“模块是isgleton对象”的标准节点方法中制作的,其独立性包括auth组件,该组件仅在进行所示的require调用时才准备就绪。我知道这不是最好的方法。 Typesript不允许“以后导入该模块”,除非使用dynamyc import,否则该注释中提到了问题。 “好的”方法是重构启动的那一部分,并使ensureForFreshConfig及其依赖项通过cnstructors根据需要启动其ntenras。.我只是希望提供一些解决方案,以减少在向TypeScript过渡后重新制作的东西。
答案 0 :(得分:0)
import { cloudConfigLoader } from '../utils/cloud-config'
async function prepareConfiguration() {
await cloudConfigLoader.ensureForFreshConfig()
// do some stuff
// return some-stuff
}
该功能的用法如下。
await prepareConfiguration()