Gdybyśmy określić domyślny wywóz:Kiedy należy używać `export default`in JavaScript/TypeScript?
export class Foo {}
export default Foo;
wtedy można pominąć nawiasy klamrowe podczas importu (jak wspomniano w this answer):
import { Foo } from "foo"; // becomes:
import Foo from "foo";
to w porządku, ale czy istnieje jakieś non-stylistyczną powód do preferować jeden nad drugim w poszczególnych przypadkach? Na przykład, czy istnieje pewna konwencja, czy jest ona niezgodna z niektórymi narzędziami, czy też ma ona inne znaczenie?
(Na podstawie this discussion i innych, moje rozumienie jest export default
mogły powstać jako sposób obchodzenia się z eksportu jednego, pierwotnego obiektu (jak $
), który jest obecnie obsługiwany przez import * as foo from "foo"
. Ponadto, wydaje się, że domyślne Składnia importu nie wymusza spójnego nazewnictwa (import fooAlias from "foo"
), podczas gdy standardowy import import { fooAlias } from "foo"
byłby błędem kompilacji, chyba że alias byłby wyraźny (Foo as fooAlias
) .Odpowiedziałem, że nie byłem w stanie znaleźć wiele informacji na temat kiedy powinienem użyć jednego z drugiej.)
Tak, to ma być stosowane, gdy moduł definiuje tylko jeden obiekt (lub wartości w ogóle). Zauważ, że 'import * as $ from" jquery ";' nie działa - chcesz, aby '$' było funkcją, a nie obiektem przestrzeni nazw. – Bergi
@Bergi w prawo, ale pomijając domyślny eksport i importowanie przez 'import {$} z" jquery "' może być inaczej? Kiedy będę używał jednego nad drugim? Czy "export default" jest w ogóle potrzebny? –
Eksport domyślny to zazwyczaj najważniejsza wartość, tj. Ta używana częściej. Domyślnym eksportem jest po prostu inny nazwany eksport o specjalnej nazwie 'default', więc' import {default as $} z 'jquery'' jest równoważny 'importowi $ z' jquery''. –