我正在新学习打字稿,我遇到了一个奇怪的行为,我试图声明两个变量,一个null
另一个undefined
,因为它是 Typescript 2.0 中引入的新功能。
let myNullVar :null;
let myNullVar2 : undefined;
console.log(typeof myNullVar);
console.log(typeof myNullVar2);
我期待看到这个输出:
null
undefined
但它是:
undefined
undefined
更多,当我这样做时:
if(typeof myNullVar === 'null'){
console.log('null');
}
else if (typeof myNullVar === 'undefined'){
console.log('undefined');
}
我得到undefined
null 与 Typescript 中的未定义是一回事吗? 如果是,两者兼而有之的目的是什么?
类型注释不会影响运行时行为,typeof
是运行时构造。
未初始化变量的值为 undefined
,并且typeof undefined
始终"undefined"
。请注意,这是一个字符串,与值undefined
本身不同。
既然要上来,typeof null
就"object"
了。