React 前端导航

ts数据类型-unknown

介绍

unknown 是 TypeScript 3.0 引入了新类型,是 any 类型对应的安全类型。
相同点 let value: any let value: unknown
value = true; OK OK
value = 1; OK OK
value = "Hello World"; OK OK
value = Symbol("type"); OK OK
value = {} OK OK
value = [] OK OK
unknown 和 any 的主要区别是 unknown 类型会更加严格: 在对unknown类型的值执行大多数操作之前,我们必须进行某种形式的检查, 而在对 any 类型的值执行操作之前,我们不必进行任何检查。
当 unknown 类型被确定是某个类型之前,它不能被进行任何操作
不同点 let value: any let value: unknown
value.foo.bar; OK ERROR
value(); OK ERROR
new value(); OK ERROR
value[0][1]; OK ERROR

例子

有这么一个函数

function divide(param: any) {
  return param / 2;
}

把 param 定义为 any 类型,TS 就能编译通过,没有把潜在的风险暴露出来,万一传的不是 number 类型,不就没有达到预期了吗。

把 param 定义为 unknown 类型 ,TS 编译器就能拦住潜在风险,如下图:

因为不知道 param 的类型,使用运算符 /,导致报错。

再配合类型断言,即可解决这个问题,

function divide(param: unknown) {
  return param as number / 2;
}

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:farmerlzj@163.com。 本站原创内容未经允许不得转载,或转载时需注明出处: 内容转载自: React前端网:https://qianduan.shop/blogs/detail/146
想做或者在做副业的朋友欢迎加微信交流:farmerlzj,公众号:生财空间站。

#typescript#ts#unknown#数据类型

相关推荐

Typescript 类型声明工具函数一览

记录Typescript 类型声明工具函数及作用

TypeScript 5.0 装饰器!

装饰器是即将推出的 ECMAScript 特性,它允许我们以可重用的方式自定义类及其成员。