美文网首页
any 和 unknown

any 和 unknown

作者: sweetBoy_9126 | 来源:发表于2022-07-23 22:35 被阅读0次

Top Type 通用父类型(任何类型都可以赋值给这个类型)

any

let value: any

value = true
value = 42
value = 'hello word'
value = []
value = {}
....

unknown

let value: unknown

value = true
value = 42
value = 'hello word'
value = []
value = {}
....

区别

any
我不在乎它的类型
你可以把任何值赋值给any类型的变量,并对该变量进行任何操作

unknown
我不知道它的类型,相当于安全的 any 类型,相比 any,ts 会对 unknown 类型进行检查
你可以把任何值赋给 unknwon 类型的变量,但你必须进行类型检查或类型断言才能对变量进行操作

function a(callback: unknown) {
  try {
    // 报错对象的类型为 unknown
    callback()
  } catch(err) {}
}
a(1)

// 解决方法对 callback 进行类型收紧
if (typeof callback === 'function') {
  callback()
}

unknown 类型赋值的变量只能赋值给 any 类型和 unknown 类型本身

let value: unknown

let value1: unknown = value // 正确
let value2: any = value // 正确

let value3: boolean = value // 错误
let value4: number = value // 错误
...

相关文章

网友评论

      本文标题:any 和 unknown

      本文链接:https://www.haomeiwen.com/subject/lctiirtx.html