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.