这是我正在使用的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;
可以解决问题,但是在我的实际应用中,我需要进行许多这样的赋值导出。如果可能,我想使用命名的export对象使语法在语法上更整洁)