Wenn wir einen Standardexport angeben:Wann sollte ich `export default`in JavaScript/TypeScript verwenden?
export class Foo {}
export default Foo;
dann können wir geschweiften Klammern während des Imports auslassen (wie in this answer angegeben):
import { Foo } from "foo"; // becomes:
import Foo from "foo";
ist das in Ordnung, aber gibt es eine nicht-stilistischen Grund bevorzugen Sie in bestimmten Fällen? Gibt es zum Beispiel eine Konvention oder ist sie mit bestimmten Werkzeugen nicht kompatibel oder hat sie eine andere Bedeutung?
(Basierend auf this discussion und andere, mein Verständnis ist, dass export default
als ein Weg entstanden sind, könnten den Export eines einzigen, primären Objekt (wie $
), die von import * as foo from "foo"
behandelt wird nun der Handhabung. Außerdem ist es der Standard scheint Die Importsyntax erzwingt keine konsistente Benennung (import fooAlias from "foo"
), während der Standardimport import { fooAlias } from "foo"
ein Kompilierungsfehler wäre, es sei denn, der Alias wäre explizit (Foo as fooAlias
) .Außerdem konnte ich nicht viele Informationen darüber finden, wann ich einen verwenden sollte über die anderen.)
Ja, es soll verwendet werden, wenn das Modul nur ein einzelnes Objekt (oder Wert im Allgemeinen) definiert. Beachten Sie, dass 'import * als $ aus" jquery ";' nicht funktionieren würde - Sie möchten, dass '$' eine Funktion und kein Namespace-Objekt ist. – Bergi
@Bergi Recht, aber würde die Standard-Export und Import über 'Import {$} von" Jquery "' anders sein? Wann würde ich eins über dem anderen benutzen? Wird Export-Default überhaupt benötigt? –
Ein Standardexport ist normalerweise der wichtigste Wert, d. H. Derjenige, der häufiger verwendet wird. Der Standard-Export ist nur ein anderer benannter Export mit dem speziellen Namen 'default', so dass' import {default as $} aus 'jquery''ist äquivalent zu' import $ from 'jquery''. –