Ich hatte einen Bug in meinem Angular 4 Projekt, wo ich eine Variable deklariert hatte:
%Vor%statt
%Vor%Also natürlich war dieser.debounce vor der Behebung nicht definiert.
Sollte Typoskript mir in diesem Fall keinen Fehler geben?
Wenn Sie eine Variable mit einer Typ-Annotation von 300
deklarieren, bedeutet das, dass nicht nur der Typ numerisch ist, sondern nur der Wert 300
zulässig ist:
Sie erhalten einen Fehler, wenn Sie versuchen, sagen, 200:
%Vor%Schalten Sie strenge Null-Prüfungen ein, und der Compiler wird diese Art von Problem erkennen (Sie wollten den Wert zuweisen, keine Typ-Annotation):
%Vor%Wenn Sie in diesem Fall versuchen, die Variable zu verwenden , weisen strikte Null-Checks darauf hin, dass Sie nie einen Wert zugewiesen haben. Sie sagen also, dass Sie eine Annotation und keine Zuweisung gemacht haben.
Sie können (fast) alles als Werttyp an Typescript übergeben. Also wenn du sagst:
%Vor% Sie erhalten einen Typfehler, da Typoskript erwartet, dass der Wert für Debounce 300
, 500
oder 700
ist, nicht irgendeine Zahl. Dies bedeutet, dass Sie genauere Angaben zu Typanmerkungen machen können.
Diese Zeile ist korrekt, weil Sie unbeabsichtigt literal-types
( für weitere Informationen verwendet haben) >):
Dieses Beispiel hilft Ihnen zu verstehen, wie% co_de ist % wird verwendet, um Variablen auf eine endliche Menge möglicher Werte zu beschränken :
%Vor% Es ist nicht eine konstante Deklaration. Sie haben eine Variable deklariert und einen implizit typisierten Wert zugewiesen. Sie liegen falsch. Es ist number
type-Deklaration, die nur bestimmte Werte akzeptiert.
und weisen Sie es dann mit
zu %Vor% Typescript gibt Ihnen keinen Fehler, weil es syntaktisch korrekt ist, aber Laufzeitfehler folgen für undefined
Variablen.
Tags und Links javascript angular typescript