如何在不导出整个对象的情况下对对象的一部分进行名为出口的ES6?

时间:2018-12-06 21:51:42

标签: javascript ecmascript-6 es6-modules

这是我正在使用的JavaScript对象:

const tree = {
  birdhouse: {
    inspectNest: () => 'eggs'
  },
  ...
}

我希望全世界都可以使用隐藏在中间的inspectNest函数,但是出于手工操作的原因,我不想将整个tree对象都交给我的消费者。我希望我可以做这样的事情作为命名导出:

export { tree.birdhouse.inspectNest as inspectNest };

但是,包括点号来访问这些属性似乎是无效的语法。

我怀疑像const { birdhouse: { inspectNest }} = tree;这样的破坏性声明可能在导出之前就可以起作用,但是还有一个障碍-应用程序运行时,程序的其他部分可能会重新定义birdhouseinspectNest。发生这种情况时,我不知道更改后的项目是否将继续以新值导出。

任何建议,还是破坏最佳方法?

(PS,我知道export const inspectNest = tree.birdhouse.inspectNest;可以解决问题,但是在我的实际应用中,我需要进行许多这样的赋值导出。如果可能,我想使用命名的export对象使语法在语法上更整洁)

0 个答案:

没有答案