导入模块并在运行时导出



嗨,我有两个配置文件,例如:

配置一个.ts

export const FOO = '1';
export const BAR = 1;

配置两个.ts

export const FOO = '2';
export const BAR = 2;

这两个文件都在config.ts.中导入

配置

import * as configOne from './config-one.ts';
import * as configTwo from './config-two.ts';

我想要在某个持续时间导出配置一或配置二,就像config.ts导出的那样

if ( some condition ){
export configOne;
} else {
export configTwo;
}

在其他文件中的使用

foo.ts

import { FOO, BAR } from './config.ts';

打字可能吗?

动态导入足以实现动态导出:

config-one.ts

export const config1 = "config1";

配置两个

export const config2 = "config2";

index.ts

const whatever = true;
const getConfig = () => {
if (whatever) {
return import("./config-one");
}
return import("./config-two");
};

tsconfig

...
"moduleResolution": "Node",
"module": "CommonJS",
...

用法示例:

async function main() {
console.log(await getConfig());
}
main().catch(console.log);

最新更新