在 ES6 中导入常量的正确语法

Sam*_*l G 3 javascript ecmascript-6

给定以下模块,如何导入常量模块并避免包含默认属性:

// constants.es6
export default {
    foo: 'foo',
    bar: 'bar'
}

// anotherModule.es6
import * as constants from './constants';
Run Code Online (Sandbox Code Playgroud)

结果是 constants.default.foo

我似乎无法得到正确的语法来结束 constants.foo

nbw*_*ard 7

import constants from './constants'

console.log(constants.foo, constants.bar)
Run Code Online (Sandbox Code Playgroud)

如果您想直接从 ./constants

constants.js:
export const foo = 'foo'
export const bar = 'bar'

anotherModule.js:
import {foo, bar} from './constants'

console.log(foo,bar)
Run Code Online (Sandbox Code Playgroud)


Fel*_*ing 7

您不应该使用对象来定义常量。调用代码可以自由地执行constants.foo = 42;和更改值。

使用

export const foo = 'foo';
export const bar = 'bar';
Run Code Online (Sandbox Code Playgroud)

反而。

然后你的导入语句,import * as constants from './constants';,也将起作用。


如果您不想更改定义常量的方式,那么您的问题是“如何导入默认导出”,这些问题已回答: