为什么打字稿允许在其中传递null
/ undefined
?
// "strictNullChecks": false
function someFun(param: (foo: any) => any) {}
someFun(null); // no error - incorrect
someFun(undefined); // no error - incorrect
答案 0 :(得分:2)
引用docs
在严格的null检查模式下,null和undefined值不在每种类型的域中,并且只能分配给自己和任何(一个例外是undefined也可以分配给void)
.. T和T |在常规类型检查模式下,未定义被视为同义词(因为未定义被视为任何T的子类型),