TypeScript中any与unknown的区别

请添加图片描述

1:any类型

任何类型都可以是any类型,any类型就相当于是免检标签,给了开发者很大的自由,typescript允许any类型的值进行任何操作,对它一路绿灯。

let score: any = 666.66;
let num = Math.round(score); // ok

2:unknown类型

任何类型也都可以是unknown类型,但与any完全相反,unknown类型就像是typescript给打上了一个重点检查的标签。在没有对它进行类型检查之前,ubnknow类型的变量是不能进行任何操作的。

let score: unknown = 666.66;
let num = Math.round(score);

在这里插入图片描述

3:那如何使unknown类型能正常使用呢?

1.很简单,先进行类型判断
let score: unknown = 666.66;
if(typeof score === "number") {
  let num = Math.round(score); // ok
}
2.断言
let score: unknown = 666.66;
let num = Math.round(score as number);
# 或
let num = Math.Round(<number>score);

区别:

  1. any 会绕过类型检查,直接可用,而 unkonwn 则必须要在判断完它是什么类型之后才能继续用
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值