Вы можете импортировать с помощью *
, хотя при этом будет импортировано все пространство имен AllMyModules
, а не только те, которые вы выбираете:
import * as ModuleManager from 'AllMyModules.js';
// ...
ModuleManager.moduleA();
Если вам нужен объект только с некоторыми * Модули 1007 *, не все, и ни один из экспортов не является изменяемым (который экспортирует , в любом случае не должен ), затем, чтобы сохранить код DRY, извлеките то, что вы хотите, в новый объект после импорта:
import * as ModuleManagerNS from 'AllMyModules.js';
const ModuleManager = {};
for (const prop of ['moduleA', 'moduleB', 'moduleC']) {
ModuleManager[prop] = ModuleManagerNS[prop];
}
ModuleManager.moduleA();
Если вы хотите избежать использования import *
, вы также можете переименовать импорт при импорте, чтобы избежать коллизий имен, хотя это выглядит довольно WET:
import {moduleA as moduleManagerModuleA, moduleB as moduleManagerModuleB, moduleC as moduleManagerModuleC} from 'AllMyModules.js';
const ModuleManager = {
moduleA: moduleManagerModuleA,
moduleB: moduleManagerModuleB,
moduleC: moduleManagerModuleC,
}
I ' Настоятельно предпочитаю использовать import *
.
Я предполагаю, что только импорт того, что мне нужно, легче и помогает с меньшим размером пучка?, ну, я не уверен в этом.
Может. Если у вас есть модули с экспортом, который будет go полностью неиспользуемым, этот может помочь с встряхиванием дерева , хотя вам придется утомительно перечислять каждое имя экспорта, как в приведенном выше фрагменте.