簡體   English   中英

javascript 中的通配符導入......它在引擎蓋下使用“with”是否有效?

[英]wildcard import in javascript... does it work using `with` under the hood?

所以我知道可以用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";

?

好吧,后者需要你有一個默認的導出,而前者需要所有的導出並將它們分組到一個 object 中。

我認為您對語法感到困惑。 這個:

import * from 'x'

無效。 可以做的是:

import * as x from 'x';

這會將x文件中的所有導出放入命名空間(在大多數情況下,只是一個 JavaScript object,其屬性和default對應於導出的名稱)。 導入的x標識符指的是這個命名空間。

import {x} from 'x'等價於const {x} = require('x').

不正確 - require是 CommonJS 語法,而import / export是 ES6 模塊語法。 默認情況下它們不可互換,盡管它們做的事情非常相似。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM