Вот объект JavaScript, с которым я работаю:
const tree = {
birdhouse: {
inspectNest: () => 'eggs'
},
...
}
Я хочу, чтобы мир имел доступ к функции inspectNest
, спрятанной там посередине, но по причинам, связанным с волнообразным движением, я нехочу дать своим потребителям весь tree
объект.Я надеялся, что смогу сделать что-то вроде этого как именованный экспорт:
export { tree.birdhouse.inspectNest as inspectNest };
Однако включение точечной нотации для доступа к этим свойствам кажется неверным синтаксисом.
Я подозреваю, что оператор деструктурированиянапример, const { birdhouse: { inspectNest }} = tree;
прямо перед экспортом может работать, но есть еще одна загвоздка - другие части моей программы могут переопределять birdhouse
или inspectNest
при запуске приложения.Когда это произойдет, я не знаю, будет ли измененный элемент продолжать экспортироваться с новым значением.
Любой совет или деструктуризация - лучший подход?
(PS Я знаю export const inspectNest = tree.birdhouse.inspectNest;
справится с задачей, но в моем реальном приложении мне понадобятся многие из этих экспортов назначений. Если это вообще возможно, я хочу использовать именованный объект экспорта для сохранения синтаксической чистоты.)