Typescript 2.0 类型空变量未定义



我正在新学习打字稿,我遇到了一个奇怪的行为,我试图声明两个变量,一个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"了。

最新更新