【发布时间】:2018-12-29 21:20:51
【问题描述】:
我尝试将 nodejs 项目转换为 TypeScript,虽然在此过程中我大部分时间并没有遇到真正困难的障碍,但代码库几乎没有这样的陷阱,主要是在启动代码中:
function prepareConfiguration() {
let cloudConfigLoader = require('../utils/cloud-config');
return cloudConfigLoader.ensureForFreshConfig().then(function() {
//do some stuff
});
}
我可能只需要一个建议,说明哪种重构方法需要较少的代码更改才能使其以 TypeScript 方式工作。
针对cmets,更多细节: 这需要加载节点模块,而不是 JSON 文件。从该模块中, ensureForFreshConfig 函数与云服务联系以加载值列表以重建配置状态对象。 问题是 mdule 是在“模块是 issgleton 对象”的标准节点方法中制作的,它的独立性包括 auth 组件,只有在进行所示的 require 调用时才会准备好。我知道这不是最好的方法.. Typesript 不允许“稍后导入该模块”,除非使用 dynamyc 导入,如评论中所述,这是有问题的。 “好”的方法是重构启动的那一部分,并使 ensureForFreshConfig 及其依赖项通过 cnstructors 按需启动其 ntenras。我只是希望有一些解决方案来减少在过渡到 TypeScript 期间需要重新制作的东西
【问题讨论】:
-
这个特定的
require()在做什么?它只是加载和解析一些 JSON,还是加载需要运行的实际代码模块? -
您可以在此处阅读关于 Typescript 中的动态导入:blog.mariusschulz.com/2018/01/14/… Node 可能在导入语句方面仍有一些问题。
标签: node.js typescript require