如何在Typescript中引用当前模块



如果我导入一个外部模块,我可以通过导入的模块变量引用该模块中的项。

import * as foo from 'foo';
foo.fn()
foo['fn']()

但是如果我想做类似的事情,我如何获得对当前模块上下文的引用?

const thisModule = ???;
thisModule[`fn`]();

这样做看起来很愚蠢,但是您可以导入文件信息本身:

文件:foo.ts

export function foo() {
console.log('foo');
}
import * as self from './foo';
self.foo();

进一步探索,我尝试了一些我认为不会起作用的东西,但它确实起作用了!下面的解决方案包括一个自引用导入,它为我提供了一个对模块的变量引用。

在文件名foots

import * as local from './foo';
export function fn() {
console.log('fn()');
}
export class bar {
constructor() {
console.log('bar');
}
}
local['fn']();
new local['bar']();
// if using a variable
const c = 'bar';
new (<any>local>)[c]();

如果有人知道一个更规范的方式来完成这一点,我将感激反馈。

相关内容

  • 没有找到相关文章

最新更新