首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ES6从对象导出所有值

ES6从对象导出所有值
EN

Stack Overflow用户
提问于 2015-04-24 09:42:40
回答 9查看 146.1K关注 0票数 150

假设我有一个模块(./my-module.js),它的对象应该是它的返回值:

代码语言:javascript
运行
复制
let values = { a: 1, b: 2, c: 3 }

// "export values" results in SyntaxError: Unexpected token

这样我就可以像:

代码语言:javascript
运行
复制
import {a} from './my-module'           // a === 1
import * as myModule from './my-module' // myModule.a === 1

我发现的唯一方法是对出口进行硬编码:

代码语言:javascript
运行
复制
export let a = values.a
export let b = values.b
export let c = values.c
// or:
export let {a, b, c} = values

这不是动态的。

可以从一个对象导出所有值吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2015-04-24 19:44:06

似乎不是这样的。来自ECMAScript 6模块:最终语法的报价

您可能想知道-如果我们可以简单地默认导出对象(比如CommonJS),为什么我们需要命名导出?答案是,您不能通过对象强制执行静态结构,并且失去所有相关的优点(在下一节中将介绍)。

票数 48
EN

Stack Overflow用户

发布于 2016-05-05 00:33:38

我只需要对一个配置文件这样做。

代码语言:javascript
运行
复制
var config = {
    x: "CHANGE_ME",
    y: "CHANGE_ME",
    z: "CHANGE_ME"
}

export default config;

你可以这样做

代码语言:javascript
运行
复制
import { default as config } from "./config";

console.log(config.x); // CHANGE_ME

这是用打字稿提醒你。

票数 16
EN

Stack Overflow用户

发布于 2016-11-20 14:04:16

试试这个丑陋但可行的解决方案:

代码语言:javascript
运行
复制
// use CommonJS to export all keys
module.exports = { a: 1, b: 2, c: 3 };

// import by key
import { a, b, c } from 'commonjs-style-module';
console.log(a, b, c);
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29844074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档