TypeScript中的any和unknown有区别吗?

2023-05-04 来源:飞速影视
https://pics0.baidu.com/feed/6c224f4a20a4462382663d76ab31a2080cf3d714.jpeg@f_auto?token=2f28b67470ac234a9f7457286810ace0{}

TypeScript中的any和unknown有区别吗?


在TypeScript中,any和unknown是包含所有值的类型。在这里,我们将研究它们是如何工作的。
TypeScript的两个顶级类型
TypeScript的两个顶级类型any和unknown是TypeScript中所谓的顶级类型。引用维基百科:
The top type [...] is the universal type, sometimes called the universal supertype as all other types in any given type system are subtypes [...]. In most cases it is the type which contains every possible [value] in the type system of interest.
也就是说,当将类型视为值集时,any和unknown是包含所有值的集。另外,TypeScript还有底层的never类型,即空集合。
any
如果某个值的类型为any,我们可以对其执行所有操作:
function func(value: any) {5 * value;value.propName;value[123];}
每种类型都可分配给any:
let storageLocation: any;storageLocation = null;storageLocation = true;storageLocation = {};
any类型也可以分配给任何其他类型:
function func(value: any) {const a: null = value;const b: boolean = value;const c: object = value;}
对于any类型,我们都会失去TypeScript的静态类型系统提供给我们的保护。因此,只有我们不能使用更具体的类型或unknown时,才能将any作为最后手段使用。
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号