ts不放弃检测的unknown类型

“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;
}
复制代码

此时,类型检测会提示

image.png

所以”unknown”并没有放弃类型检测,它还是会要求你断言为具体类型,然而”any”不会,所以正确使用unknown的方式是:

function unknownFunction(param: unknown) {
  const a = param as string + 1;
}

function anyFunction(param: any) {
  const a = param + 1;
}
复制代码

完美通过类型检测:

image.png

所以,如果可以,尽量使用”unknown”类型,不然any用多了就成了”anyscript”。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享