Есть ли способ экспортировать переменные / функции, используя динамические имена, что-то похожее на динамические ключи в объектах.
Нет, нет. Вы должны быть в состоянии назвать экспорт, он не должен быть динамическим.
Если это абсолютно необходимо, экспортируйте объект и присвойте ему произвольные свойства.
У меня есть некоторая логика экспорта, которую я хочу использовать повторно, поэтому я инкапсулировал ее в функцию. Однако, похоже, что такого рода вещи могут быть невозможны с модулями ES6 +.
То, что вы делали в ES5, все равно было сомнительным Вызов exporter
действительно изменил объект exports
, его многократный вызов вызовет полный хаос.
Вы можете повторить это поведение, выполнив
export var first, second;
function exporter(db) {
first = db.collections('first');
second = db.collections('second');
}
или
var database;
export function first() {
return database.collections('first');
}
export function second() {
return database.collections('second');
}
function exporter(db) {
database = db;
}
но было бы лучше, если бы вы просто создали новый объект вместо того, чтобы возиться с экспортом:
export default function exporter(db) {
return {
first: db.collections('first'),
second: db.collections('second'),
};
}