【问题标题】:Typescript 2.0 typeof null variable is undefinedTypescript 2.0 typeof null 变量未定义
【发布时间】:2018-04-20 17:57:59
【问题描述】:

我刚开始学习 Typescript,我遇到了一个奇怪的行为,我试图声明两个变量,一个是 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 中的 undefined 是一样的吗?如果是,两者兼有的目的是什么?

【问题讨论】:

  • : 不做赋值,它只是一个类型注释
  • 我编辑了问题是缺少的 typeof
  • @hvd 你说得对,重新编辑

标签: typescript null undefined


【解决方案1】:

类型注释不会影响运行时行为,typeof 是一个运行时构造。

未初始化变量的值为undefinedtypeof undefined 始终为"undefined"。请注意,这是一个字符串,与值undefined 本身不同。

既然要上来了,typeof null就是"object"

【讨论】:

  • 当代码被转译为 JS 时,我的两个变量上没有设置类型(这是 TS 的目的)。所以当我得到这两个变量的类型时,无论我在TS中声明它们是什么类型,只要它们没有被初始化为一个值,它们就永远是未定义的,对吗?
  • 没错。 JavaScript 变量绑定本身没有类型,只有值。
猜你喜欢
  • 2011-06-11
  • 2011-02-11
  • 1970-01-01
  • 2017-02-16
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
相关资源
最近更新 更多