#javascript #typescript #es6-modules
#javascript #typescript #es6-модули
Вопрос:
Привет, у меня есть два файла конфигурации, например.:
config-one.ts
export const FOO = '1';
export const BAR = 1;
config-two.ts
export const FOO = '2';
export const BAR = 2;
оба файла импортируются в config.ts.
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';
Возможно ли это в typescript?
Комментарии:
1.
export configOne;
недопустимо в модулях ES6
Ответ №1:
Динамического импорта достаточно, чтобы выполнить динамический экспорт:
config-one.ts
export const config1 = "config1";
config-two.ts
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);