我现有require
:
const {dialog} = require('electron').remote;
我开始使用Babel for ES6,并希望import
改为使用它。到目前为止,我有:
import electron from 'electron';
const {dialog} = electron.remote;
这很难看,我不禁觉得有更好的方法可以做到这一点。我只需需要此处的对话框。我如何在一行中获得它?
答案 0 :(得分:2)
ECMAScript模块语法不允许深度解构。事实上,它根本没有结构。 Import语句在模块之间创建实时绑定。
这是由Ben Nadel撰写的精彩博文。它应该阐明绑定:http://www.bennadel.com/blog/3131-the-import-statement-creates-a-live-view-of-modules-in-es6-and-typescript-in-angular-2.htm
通过做
import electron from 'electron';
const {dialog} = electron.remote;
electron
具有这样的约束力。通过进行解构赋值dialog
是正常常数,它不会被约束"电子模块(它不会更新)。
答案 1 :(得分:1)
没有什么“丑陋的”,这就是应该如何用ES6编写的东西。
应该在没有脚本评估的情况下静态分析 import
,支持的语法是有限的。默认导入无法在import
语句中进行解构,所有语法类型are listed in the reference。
可以写成
import electron from 'electron';
const { remote: { dialog } } = electron;