[英]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.