0

所以我知道可以用require.

import {x} from 'x'相当于const {x} = require('x')

但是呢import * from 'x'?我能想象它被翻译成的唯一的东西是with(require('x')){... }

然而,with声明是不受欢迎的,不是吗?(因为您在编译时不知道如何解析引用)

4

2 回答 2

0
import * from "x";

不是有效的 JS。

import * as x from "x";

是。

这和有什么区别

import x from "x";

?

好吧,后者要求您有一个默认导出,而前者需要所有导出并将它们分组到一个对象中。

于 2021-11-18T15:51:29.940 回答
0

我认为您对语法感到困惑。这个:

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 模块语法。默认情况下它们不可互换,尽管它们做的事情非常相似。

于 2021-11-18T15:52:22.000 回答