我有:

const fs = require('fs');

const packageConfig = JSON.parse(fs.readFileSync('./package.json'));
const { jspm: { configFile: jspmConfigFile }} = packageConfig;

packageConfigconfigFile 值可能未定义。在这种情况下,我想将 jspmConfigFile 默认为 'config.js
是否可以在不创建扩展 packageConfig 对象的情况下执行此操作?

我意识到我可以做这样的事情:
const { jspm: { configFile: jspmConfigFile }} = _.extend({
    jspm: { config: 'config.js'}
}, packageConfig);

但这非常困惑,只是为了通过解构获得合理的默认值。

我错过了什么?

最佳答案

对象解构中默认值的语法是:

const { jspm: { configFile: jspmConfigFile = 'config.js' }} = packageConfig;

但这还没有在 Firefox 中实现:https://bugzilla.mozilla.org/show_bug.cgi?id=932080

关于javascript - ES6 解构对象,不用作函数参数时赋值时的默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32937767/

10-11 14:17