在Node.js中的功能内部需要的Typescript替换

时间:2018-07-22 02:30:55

标签: node.js typescript require

我试图将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过渡后重新制作的东西。

1 个答案:

答案 0 :(得分:0)

import { cloudConfigLoader } from '../utils/cloud-config'

async function prepareConfiguration() {
  await cloudConfigLoader.ensureForFreshConfig()

  // do some stuff
  // return some-stuff
}
  

该功能的用法如下。

await prepareConfiguration()