#1 In Mengen (Set) denken
#2 Deklarierte Typen und eingegrenzte (narrowed) Typen verstehen
#3 Statt optionaler Felder diskriminierte Unions verwenden
#4 Type Assertions mithilfe von Type Predicates vermeiden
#5 Verteilung von Union-Typen steuern
#6 Nicht behandelte Fälle zur Compile-Zeit durch gründliche Prüfungen erkennen
#7 type statt interface verwenden
#8 In passenden Situationen statt Arrays Tupel verwenden
#9 Steuern, ob inferierte Typen allgemein oder spezifisch sind
#10 infer verwenden, um zusätzliche generische Typparameter zu erzeugen
#11 Mit kreativer Typmanipulation DRY bleiben
Fazit
6 Kommentare
Punkt 7 scheint aus der React-Perspektive geschrieben zu sein.
Ich bevorzuge
interfacegegenübertype. Es ist schließlich auch eine Syntax, die es in anderen Sprachen gibt.Ich auch. Ich meine, mich zu erinnern, dass es im TypeScript-Handbook früher auch den Rat gab, nach Möglichkeit bevorzugt Interfaces zu verwenden.
Das ist der Inhalt.
Alles gut, aber Punkt 7,
typestattinterfacezu verwenden, ist wirklich nötig? Das kann man kaum als Tipp bezeichnen.interfacehat in manchen Fällen die bessere Ausdruckskraft, z. B.interface Foo {(b: number): A; (): B}Ich möchte zwar nicht für
typeplädieren, aber ich verstehe das Beispiel mit der besseren Ausdruckskraft nicht so gut. Lässt sich das entsprechende Beispiel nicht auch mittypegenauso ausdrücken?interface Foo {(b: number): A; (): B}
type Foo = {(b: number): A; (): B}
Im Buch Effective TypeScript gibt es einen Abschnitt, der zusammenfasst, wann man
typeund wanninterfaceverwenden sollte, den ich hier zitieren möchte.Wenn du an einem Projekt arbeitest, dessen Stil noch nicht festgelegt ist, solltest du überlegen, ob künftig Erweiterungen nötig sein könnten. Wenn du Typdeklarationen für eine bestimmte API schreiben musst, ist
interfacemeist die bessere Wahl. Das ist nützlich, weil Anwender bei Änderungen der API über Interfaces neue Felder zusammenführen können. Wenn es jedoch innerhalb eines Projekts zu Declaration Merging bei intern verwendeten Typen kommt, ist das ein Zeichen für ein schlechtes Design. In solchen Fällen sollte man dahertypeverwenden.