import 不带{}编译报错呢
时间: 2023-08-13 19:33:07 浏览: 93
如果你在使用 ES6 模块化的时候,引入一个默认导出(default export)的模块时,可以使用 `import` 不带花括号 `{}`,但是有些情况下,如果你引入的是命名导出(named export),就需要使用 `{}` 来指定导入的名称。如果你不使用花括号 `{}`,却尝试引入一个命名导出的模块,编译器会报出以下错误:
```javascript
Uncaught SyntaxError: The requested module './module' does not provide an export named 'myFunction'
```
这是因为你引入的模块没有默认导出,所以编译器无法找到你指定的名称。解决方法如下:
```javascript
// 引入命名导出的模块时,使用花括号 {}
import { myFunction } from './module'
// 引入默认导出的模块时,不使用花括号 {}
import myFunction from './module'
```
需要注意的是,如果你在模块中同时使用了默认导出和命名导出,你可以将默认导出命名为 `default`,例如:
```javascript
// module.js
export function myFunction1() {
console.log('myFunction1')
}
function myFunction2() {
console.log('myFunction2')
}
export default myFunction2
// app.js
import myFunction1, { default as myFunction2 } from './module'
myFunction1() // 输出:myFunction1
myFunction2() // 输出:myFunction2
```
在这个例子中,我们将 `myFunction2` 作为默认导出,并将其命名为 `default`,这样我们在引入模块时,就可以使用 `import { default as myFunction2 }` 来指定默认导出的名称了。