Typoskript implizit Variablen-Typen auf der Grundlage der ursprünglichen Zuweisung (Read more). So sind die beiden hier Variablen sind beide als boolean
getippt:
let a = true; // implicitly typed as boolean
let b: boolean = true; // explicitly typed as boolean
Beide Fehler wird, wenn eine andere Art zuweisen:
a = "a string"; // error, type 'string' is not assignable to type 'boolean'
b = "a string"; // error, type 'string' is not assignable to type 'boolean'
Es gibt keine Konvention für, ob Sie explizit oder implizit sein sollte, aber ich würde sehr empfehlen, die Ausführlichkeit von let a: boolean = true;
fallen zu lassen. Es ist kürzer, stattdessen let a = true;
zu schreiben. Die Zuweisung zeigt den Typ bereits deutlich an, so dass es nicht nötig ist, explizit zu sein und das zweimal zu sagen.
Implizite Anys
Sie sollten für "implizite alle Arten" aufpassen. Dies geschieht, wenn es keine Zuordnung in der ersten Stellungnahme ist und kein Typ angegeben:
let a; // implicitly typed as `any`
Diese Variable kann in einer Weise verwendet werden:
a = true; // ok
a = "a string"; // ok
In diesem Fall sollten Sie über den Typ explizit sein :
let a: boolean;
a = true; // ok
a = "a string"; // error, type 'string' is not assignable to type 'boolean' -- good!
Sie vollständig --noImplicitAny
, indem der Compiler-Option versehentlich definieren implizit alle Arten vermeiden kann, die einen Compiler-Fehler erhöhen, wenn Sie d o ja. Ich empfehle, dies zu aktivieren.
let a; // compile error with `--noImplicitAny`
Haben Sie eine Quelle, in der TypScript tatsächlich Variablen implizit basierend auf der ursprünglichen Zuweisung eingibt? Da ich keinen finden konnte :) –
@osi ja, siehe [hier] (http://www.typescriptlang.org/docs/type-inference.html). –
@osi auch, können Sie den Code testen. Sie werden sehen, dass das, was in der aktuell ausgewählten Antwort gesagt wird, falsch ist, weil es keine Typrückschlüsse berücksichtigt. –