“unknown”,一个神奇的类型,有点像”any”,但是又不太一样,用官网的说法就是:
The unknown type represents any value. This is similar to the any type, but is safer because it’s not legal to do anything with an unknown value.
翻译成大白话的意思就是:”unknown”类型代表任何类型,它的定义和”any”定义很像,但是它是一个安全类型,使用”unknown”做任何事情都是不合法的。举个例子和”any”的区别就是:
function unknownFunction(param: unknown) {
const a = param + 1;
}
function anyFunction(param: any) {
const a = param + 1;
}
复制代码
此时,类型检测会提示
所以”unknown”并没有放弃类型检测,它还是会要求你断言为具体类型,然而”any”不会,所以正确使用unknown的方式是:
function unknownFunction(param: unknown) {
const a = param as string + 1;
}
function anyFunction(param: any) {
const a = param + 1;
}
复制代码
完美通过类型检测:
所以,如果可以,尽量使用”unknown”类型,不然any用多了就成了”anyscript”。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END