为了账号安全,请及时绑定邮箱和手机立即绑定

Null与Undefined的类型推断问题万分感谢

Null与Undefined的类型推断问题万分感谢

森栏 2019-08-21 12:11:48
letx=1letz='2'x=z//错误上面的报错是因为x被推断为number,而z被推断为string,所以赋值失败但是为什么下列代码能赋值成功?letx=nullx=1为什么下列代码赋值失败?letb:null=nullb=1//错误同样的情况undefined也有。这是因为typescript编译器把undefined和null都推断成any类型了吗?
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

letx=undefined等价于letx,这时候x类型为any,所以x可以被赋值为任何类型。letb:undefined=undefined强制申明b的类型为undefined,所以不能为number。undefined和null为不同类型,并不等价。
                            
查看完整回答
反对 回复 2019-08-21
?
DIEA

TA贡献1820条经验 获得超2个赞

可以看一下MDN上对undefined和null的解释,undefined的含义是“未赋值”,null的含义是“空对象”,平时我们设varx;相当于varx=undefined;
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 268 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信