今天重新看了阮一峰的《ES6 标准入门》,这个地方产生了一点疑问,书上说是接口和模块变量一一对应,我还有点迷惑,求大佬指点。
问题1:
// 1.js
const a = 1
const b = 2
export default { a, b }
// 2.js
import c from "./1.js"
const { a, b } = c // 可以成功解构,但是下面是简化后的操作
import { a, b } from "./1.js" // 1. 为什么会报错?
问题2:
const a = 1
const b = 2
const c = { a, b }
export c // 2.和下面表现得是一个东西,为什么会报错?
export { a, b }
问题3:
// 3. 为什么下面的这样导出可以呢?
// 4. const a = 1这个声明也可以是接口吗?
// 5. 他怎么去对应a这个变量?
export const a = 1
1、
import
从语法上不支持解构赋值,否则会和下面的语法产生歧义:这种语法叫
named imports
,语法上和解构赋值很像,但不一样。2、还是语法问题。凡事不要想当然,多看文档。
3、ES 中哪来的“接口”?你想问 TypeScript?我没看过这本《ES6 标准入门》,你可以贴一下相关原文。
P.S. 有关
import
/export
的语法规范,可以参考 ECMA 官方文档(①);相关的具体示例可以参阅 MDN(②③)。