TypeScript中的any和unknown有区别吗?(2)
2023-05-04 来源:飞速影视
例如:JSON.parse()
JSON.parse()取决于动态输入,这就是返回类型为any的原因:
JSON.parse(text: string): any;
JSON.parse()是在unknown类型之前添加到TypeScript语言中的。如果不是,那么它的返回类型可能就会被定义为unknown。
unknown
unknown类型是any类型的安全版本。每当你想用any时,试着先用unknown。
在任何允许我们做任何事情的地方,unknown的限制要大得多。
在对unknown类型的值执行任何操作之前,必须首先通过以下方式缩小其类型:
function func(value: unknown) {// Type assertion:(value as number).toFixed(2);}function func(value: unknown) {if (value === 123) { // equalityvalue;value * 5;}}function func(value: unknown) {if (typeof value === "string") { // type guardvalue;value.length;}}function func(value: unknown) {assertionFunction(value);value;value.test("abc");}function assertionFunction(arg: unknown): asserts arg is RegExp {if (! (arg instanceof RegExp)) {throw new TypeError("Not a RegExp: " arg);}}
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号