TS中的类型保护和unknown

111

类型保护

  • ts本身提供了一些类型识别。is语法
  • js也提供了一些类型保护,比如typeof、instanceof、in等

is语法

Image.png

  • is指定这个函数返回值为true的时候,给参数指定类型

unknown

  • 也是一个ts中的类型,是ts一个高级类型
  • any叫做不检测了,随意。但是unknown要进行类型检测(但是不知道是什么)

Image.png

  • 类型如果是unkonw,则不能直接使用,不能做运算

unkonwn的使用

Image.png

  • 我们在使用unkonw的时候,要保证安全
  • unknown只有被断言或类型保护了,就可以使用

特殊情况

  • unknown和任何类型取交集,返回另一个类型
  • 一个不知道的类型和已知道的,结果就是unknown
  • unknown不能被keyof,但是any可以keyof,结果是string、number和symbol
  • 所以当我们使用的时候补知道他的具体类型,就不要再使用any,采用unkonw,因为any不安全