TypeScriptでは、すべての型の変数にnullやundefinedを代入できます。
let str: string = "Hello";
str = null; // OK
str = undefined; // OK
strictNullChecksモードを有効にすると、nullとundefinedはそれぞれの型とvoid以外の変数に代入できなくなります。
strictNullChecksモードを有効にします。
tsc index.ts --strictNullChecks
今度はstring型の変数にnullやundefinedを代入すると、エラーになります。
let str: string = "Hello";
str = null; // error TS2322: Type 'null' is not assignable to type 'string'.
str = undefined; // error TS2322: Type 'undefined' is not assignable to type 'string'.
strictNullChecksモードを有効にすることで、nullやundefinedによるエラーを減らすことができます。