相当于ES6中此CommonJS文件的TypeScript是什么
const Parser = require('./src/parser');
const numerics = require('./src/numerics');
module.exports = Parser;
module.exports.numerics = numerics
我尝试了许多不同的方法,这是我得到的最接近的方法:
import Parser = require('./src/parser');
import numerics = require('./src/numerics');
export = Parser
现在,问题在于,它不允许我以TypeScript方式导出其他任何内容。
如果我添加这段代码,那么一切将完全按照应有的方式工作,并且等同于原始JS代码。
module.exports.numerics = numerics;
答案 0 :(得分:0)
选项1:您可以通过以下方式组合两个模块的值含义:
import Parser = require('./src/parser');
import numerics = require('./src/numerics');
const combined = Object.assign(Parser, {numerics});
export = combined;
但是,任何类型都会丢失。
选项2:由于module.exports.numerics = numerics
实际上是在诱变Parser
模块,因此只需在该模块中添加numerics
声明就可以了,并且然后写:
import Parser = require('./src/parser');
import numerics = require('./src/numerics');
Parser.numerics = numerics;
export = Parser;
您可以修改原始模块声明,或者根据声明的编写方式,可以通过module augmentation添加numerics
。
如果所有代码都在您的控制之下,也许您应该只将numerics
分配为parser
模块的一部分,而不要使用这些奇怪的解决方法之一。