Я столкнулся с этим различием, которое не было хорошо объяснено в ExploringJS.
Квалифицированный и неквалифицированный импорт работают одинаково (оба являются косвенными).
В чем различие и, следовательно, что означает это утверждение?
Я столкнулся с этим различием, которое не было хорошо объяснено в ExploringJS.
Квалифицированный и неквалифицированный импорт работают одинаково (оба являются косвенными).
В чем различие и, следовательно, что означает это утверждение?
var foo = require('a').foo // doesn't work with cyclic dependencies
import {foo} from 'a' // can work with cyclic dependencies*
var a = require('a')
function bar() {
a.foo() // can work with cyclic dependencies*
}
exports.bar = bar
import * as a from 'a'
export function bar() {
a.foo() // can work with cyclic dependencies*
}
В ES2015 импорт по умолчанию также может быть квалифицированным импортом (хотя некоторые люди не согласны), если они служат пространством имен:
export default {
fn1,
fn2
}
* с циклическими зависимостями вы не можете получить доступ к импорту в теле модуля:
import {foo} from 'a' // 'a' is a cyclic dependency
foo() // doesn't work