Vermeiden "export default"

Vermeiden Sie die Verwendung von export default so weit wie möglich, aus Gründen wie:

Es gibt ein paar Bedenken bezüglich der Wartbarkeit “Umbenennen oder andere Funktionen”

Nehmen wir an, wir haben “foo.ts” wie

class Foo {}
export default Foo

Dann importieren Sie in bar.ts

import Foo from './foo'

Wenn Sie Ihre Klasse wie folgt in FoorBar umbenennen

class FooBar {}
export default FooBar

Die Datei “bar.ts” wird also immer noch gleich aussehen.

import Foo from './foo'

Oder wenn du eine andere Funktion exportierst, sagen wir generateFooBar, dann musst du in deiner bar.ts ein bisschen von diesen Dingen tun: Für das Best-Case-Szenario nur dies:

import Foo, { generateFooBar } from './foo'

Ansonsten:

import Foo from './foo'

const generator = Foo.generateFooBar()

Das ist ein Overhead, mit dem man umgehen muss.

Daher ist es besser, die Lösung ohne default

export class Foo {
}
...
import { Foo } from "./foo";

Die Auffindbarkeit ist bei Standardausfuhren sehr schlecht

Wenn Sie in Ihrem Import schreiben, wie ich es tue, da ich mich nicht an alle Funktionen erinnere, exportieren die Dienstprogramme eine Zeile wie diese:

import {} from './foo'

Und versuchen Sie Intellisense, die jede IDE hat, viel Glück mit, dass. Dasselbe gilt für die Autovervollständigung

Standardmäßig gibt es eine schreckliche Erfahrung für commonJS

Oder wenn Sie mit commonJS arbeiten, was eine der `` im Moment müssen Sie schreiben

const { default } = require('module/foo')

Wie schön ist das?

Man bekommt keine Tippfehler wie ein Entwickler

Ich kann die exportierten Standardwerte auf verschiedene Weise importieren. Wählen Sie die richtige Lösung aus den unten aufgeführten Lösungen:

import Foo from './foo'

oder

import fooDeBar from './foo'

oder

import foo from './foo'

usw.

Verstehen Sie, worum es geht?

Autoimport quickfix funktioniert besser

Wenn Sie den Autoimport mit der Standardeinstellung verwenden, machen manche IDEs einige trickreiche Dinge, die nicht immer in richtigen Autoimport endet. Cool, jetzt müssen wir auch diesen Schritt überprüfen.

Der Re-Export ist für die Root-Index-Datei in npm-Paketen üblich und zwingt Sie, den Standard-Export manuell zu benennen.

Nehmen wir an, dass wir ein Paket erstellen wollen, und in unserer index.ts sollten wir den folgenden Trick anwenden, um mit dem richtigen Verhalten von Voreinstellungen zu exportieren:

export { default as Foo } from './foo'

Nicht schön, oder? Stattdessen, wenn ich nicht über Standard-Export kann ich einfach tun:

export * from './foo'

Was funktioniert Ihrer Meinung nach besser?

Standard-Exporte stellen sich selbst als Standard im dynamischen Import dar

Wir hatten einen Anwendungsfall, als wir einen Test für das Logger-Paket schrieben, und wir mussten diese Code-Zeile machen:

const logger = await import('./logger')

Um nun auf die Funktionalität des Loggers zuzugreifen, müssen wir folgendes tun, um eine Nachricht zu protokollieren:

logger.default.log('Something')

Stattdessen wäre ohne Standard-Export etwas wie folgt gewesen:

const { log } = await import('./logger')
log('Something')

Alle oben genannten Dinge stellen sicher, dass alle Importe einem einheitlichen Muster folgen.

Alle Importe würden nach demselben Konzept ablaufen, einheitlich und leicht zu merken.

import { Foo } from "./foo";
import { Bar } from "./bar";
...

Schreiten Sie weiter voran und genießen Sie jeden Schritt Ihrer Programmierreise.