TS中的unknown类型

前端精髓

共 687字,需浏览 2分钟

 ·

2021-04-08 20:40


我们可以对 any 进行任何操作,不需要检查类型。

let value:any;value = ture;value = 1;value.length;

没有类型检查就没有意义了,跟写 JS 一样。很不安全。

unknown

也可以把任何值赋值给 unknown

let value:any;value = ture;value = 1;


但是不能调用属性和方法

value.length; // 错误写法


如果需要调用属性和方法,那么你可能需要类型断言

let value:unknown;value = 'hello';(value as string).length


再或者使用类型保护

let value:unknown;value = 'hello';if (typeof value === 'string') {  value.length}


联合类型中的 unknown 定义


如果联合类型中有 unknown,那么最终得到的都是 unknown 类型

type U1 = unknown | null;type U2 = unknown | string;type U3 = unknown | number;

类型别名 U1,U2,U3 都是 unknown 类型


总结:unknown 类型比 any 类型更加的严格,不能调用属性和方法。


浏览 72
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报