我有一个从用户那里获得的文件foo.ts
,该文件可能会也可能不会导出默认值(export default function(){}
)。我知道我可以解析该文件,但出于性能和简单性的原因,我不愿意这样做。
我需要创建一个文件“链接文件”,该文件可以导出文件“ foo”中的所有内容,包括默认值和非默认值。
在JS世界中,这很容易:module.exports = require('./foo');
现在,我可以像使用foo.js文件一样使用此链接文件。他们都出口相同的东西。
但是,在TS世界中,如果我执行export * from './foo'
,则只会得到非默认值。要获得默认值,我必须添加export { default } from './foo';
。
问题是,正如我之前说的,我不知道foo.ts
是否具有默认导出,因此,如果我的链接文件始终具有export { default } from './foo';
,则在foo没有默认设置时会抛出错误。导出。
所以,我的问题基本上是,TS中的module.exports = require('./foo');
等于什么。
事实证明我可以执行export = something
,因此以下解决了我的问题:
import * as foo from './foo';
export = foo;
以下内容也适用
import foo = require('./foo');
export = foo;