所以我知道可以用require.
import {x} from 'x'相当于const {x} = require('x')。
但是呢import * from 'x'?我能想象它被翻译成的唯一的东西是with(require('x')){... }。
然而,with声明是不受欢迎的,不是吗?(因为您在编译时不知道如何解析引用)
所以我知道可以用require.
import {x} from 'x'相当于const {x} = require('x')。
但是呢import * from 'x'?我能想象它被翻译成的唯一的东西是with(require('x')){... }。
然而,with声明是不受欢迎的,不是吗?(因为您在编译时不知道如何解析引用)
import * from "x";
不是有效的 JS。
import * as x from "x";
是。
这和有什么区别
import x from "x";
?
好吧,后者要求您有一个默认导出,而前者需要所有导出并将它们分组到一个对象中。
我认为您对语法感到困惑。这个:
import * from 'x'
无效。你可以做的是:
import * as x from 'x';
这会将文件中的所有导出x放入命名空间(在大多数情况下,它只是一个 JavaScript 对象,其属性和default对应于导出的名称)。被导入的x标识符指的是这个命名空间。
还
import {x} from 'x'相当于const {x} = require('x').
不正确 -require是 CommonJS 语法,而import/export是 ES6 模块语法。默认情况下它们不可互换,尽管它们做的事情非常相似。