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

Null与Undefined的类型推断问题

Null与Undefined的类型推断问题

慕勒3428872 2019-03-13 13:28:32
let x = 1let z = '2'x = z  //错误上面的报错是因为 x 被推断为 number , 而 z 被推断为 string , 所以赋值失败但是为什么下列代码能赋值成功?let x = nullx = 1为什么下列代码赋值失败?let b: null = nullb = 1 // 错误同样的情况 undefined 也有。这是因为 typescript 编译器把 undefined 和 null 都推断成 any 类型了吗?
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

let x = undefined等价于let x,这时候x类型为any,所以x可以被赋值为任何类型。let b: undefined = undefined强制申明b的类型为undefined,所以不能为number
undefinednull为不同类型,并不等价。

查看完整回答
反对 回复 2019-03-13
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

可以看一下MDN上对undefined和null的解释,undefined的含义是“未赋值”,null的含义是“空对象”,平时我们设var x; 相当于var x = undefined;

查看完整回答
反对 回复 2019-03-13
  • 2 回答
  • 0 关注
  • 478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号