由于TypeScript是强类型的,因此仅使用if () {}检查null和undefined听起来不对.
TypeScript是否具有专用功能或语法糖?
根据 Typescript 的说法,void它是和类型的超类型。因此,具有 void 类型的函数可以返回or 。nullundefinednullundefined
只是问题是当我尝试使用typeof val !== 'undefined'和进行编译时val !== undefined。第二个失败了,但第一个正在工作。
根据文档typeof null应该是object并且typeof undefined是undefined(参见此处)
那么,第一种方法可以编译而第二种方法失败的原因是什么?这对我来说没有任何意义。
interface IFace {
data: string;
}
function sample(): void | IFace { // void could be null or undefined
return null;
}
let value = sample();
if( value !== undefined )
console.log(value.data); // It fails because value could be null
if( typeof …Run Code Online (Sandbox Code Playgroud)