typeScript学习-TS类型-其他特殊类型-any、unknown

发布时间 2023-08-11 10:06:47作者: 空白格k

typeScript学习

其他特殊类型:

any, unknown, never, void, 元组(tuple), 可变元组
 

any 比较经典的应用场景:

  1、自定义守卫 
  2、需要进行 as any 类型断言的场景

unknown 一般用作函数参数:

  用来接收任意类型的变量实参,但在函数内部只用于再次传递或输出结果,不获取属性的场景。

any, unknown 区别:

相同点:

  any 和 unknown 可以是任何类的父类,所以任何类型的变量都可以赋值给 any 类型 或 unknown 类型的变量。

let num:number = 3
let data:any = num
let data2:unknown = num
不同点:

  1、any 也可以是任何类的子类, 但 unknown 不可以, 所以 any 类型的变量都可以赋值给其他类型的变量。

let data3:any = ['a','b']
let data4:unknown = ['c','d']
let arr:Array = data3
let arr2:Array = data4 // 报错
console.log(arr) // ['a','b'] 

  2、不能拿 unknown 类型的变量来获取任何属性和方法,但 any 类型的变量可以获取任意名称的属性和任意名称的方法。

console.log(data.toFixed(2)) // 3.00
console.log(data2.toFixed(2)) // 报错