嗨我不久前切换到ECMAScript-6 javascript语法,我喜欢它!我注意到并且无法找到确定答案的一件事是在导入时使用嵌套的破坏语法.我的意思是这样的……
可以说我有一个看起来像这样的文件.
export const SomeUtils = _.bindAll({ //lodash _
someFunc1(params){
// .... stuff here
},someFunc2(params){
// .... stuff here
},someFunc3(params){
// .... stuff here
}
});
// ... many more of these
我一直在做这样的事情以获得特定的功能
import {Utils} from '../some/path/to/utils';
var {someFunc2} = Utils;
为了达到目的..有没有办法为someFunc2进行单行导入?就像你如何用括号做嵌套对象销毁赋值? (Aka:{Utils:[{someFunc2}]})?
我曾经做过var someFunc2 = require(‘../ some / path / to / utils’).someFunc2;但我似乎无法弄清楚如何使用import语句来做到这一点
最佳答案
不,ES6模块导入不提供解构选项.他们唯一的功能是命名导出(但没有嵌套).它们旨在完全取代您的require(…).someFunc2模式.
在您的特定情况下,我没有看到您将单个对象导出为命名导出的任何原因.只是用
export function someFunc1(params){
// .... stuff here
}
export function someFunc2(params){
// .... stuff here
}
export function someFunc3(params){
// .... stuff here
}
这样你就可以做到
import {someFunc2} from '../some/path/to/utils';