我定义了一个 JavaScript 文件,如下所示:
export default {
parseOptions: {
tolerant: true,
raw: true,
tokens: true,
range: true,
comment: true,
},
syntaxType: {
callback: 'callback',
promise: 'promise',
await: 'await',
},
};
我使用下面的代码将其导入其他文件中:
import { syntaxType } from './options';
...
synaxType.callback
我收到错误 synaxType
我使用的时候没有定义。但是,如果我更改为以下代码,它将正常工作:
import options from './options';
options.synaxType.callback
我想知道我之前的导入出了什么问题。我需要为此配置什么吗?以下是我的 babel 配置:
{
"presets": [
["es2015"],
"stage-0",
"react",
"react-boilerplate"
],
"plugins": [
"transform-decorators-legacy",
"transform-class-properties",
"transform-async-to-generator",
"react-hot-loader/babel"
]
}
最佳答案
语法
import options from './options';
将假定options
是默认导出的对象。这就是 options.synaxType.callback
起作用的原因。
语法
import { syntaxType } from './options';
需要 syntaxType
是导出成员,例如:
export const syntaxType = {
callback: 'callback',
promise: 'promise',
await: 'await',
};
如果模块中存在上述构造,则该语法将起作用。
关于javascript - 为什么我无法通过大括号从 javascript 文件导入属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46086202/