In Javascript - und dadurch in Typescript auch - wird zwischen null und undefined unterschieden.
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
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
}