typeScript学习-TS类型-其他特殊类型-any、unknown
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)) // 报错