In Javascript - und dadurch in Typescript auch - wird zwischen null und undefined unterschieden.
- undefined: etwas ist deklariert aber noch nicht initialisiert
- null: ist ein Wert der zugewiesen kann
Ab TypeScript 2.0: --scrictNullChecks
Per default können null und undefined allen Typen zugewiesen werden, folgende Zuweisungen sind daher erlaubt.
let someVar : string = "some value";
someVar = null;
someVar = undefined;
Durch den Einsatz von --strictNullChecks können nur noch Variablen den Wert null oder undefined erhalten, die auch vom Typ null oder undefined sind.
//Mit --strictNullChecks! lässt sich dieser Code nicht compilen
let someVar : string = "some value";
someVar = null; // Error
someVar = undefined; // Error
//Dieser Code ist gültig
let anotherVar : string | null | undefined = "some value";
anotherVar = null; // Ok
anotherVar = undefined; // Ok
Non-Null Assertion Operator
Der TypeScript compiler meldet ".. is possibly 'null'", wenn es möglich ist, dass eine Variable null ist.
function eineFunktion(e?: EinTyp) {
let x = e.WertA; // Fehler: "e may be null."
let y = e!.WertA; // Okay
}
Weiterlesen
- https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html
- https://basarat.gitbooks.io/typescript/docs/javascript/null-undefined.html
- https://basarat.gitbooks.io/typescript/docs/options/strictNullChecks.html
- https://stackoverflow.com/questions/5076944/what-is-the-difference-between-null-and-undefined-in-javascript
Untergeordnete Seiten (0)