- 引用:
- ts any、unknown、object、void、undefined、null 和 never 的类型兼容性
- any 类型表示任意类型
- 如果是一个普通类型,在赋值过程中改变类型是不被允许的,但如果是 any 类型,则允许被赋值为任意类型
- 在任意值(any 类型)上访问任何成员都是允许的
- 变量如果在声明的时候,未指定其类型,那么它会被 ts 视作为任意值类型
- 声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值
let a: any = 1
a = '1' // ok
a.split(' ') // ok
let b // 等效于 let b: any
b = 1 // ok
b = '1' // ok
b.split(' ') // ok
let c: number = 1
c = '1' // error
c.split(' ') // error
const add: any = (a: number, b: number): number => a + b
const result = add(1, 2)
// const result: any
// result 将被推断为 any 类型
const add = (a: number, b: number): number => a + b
const result = add(1, 2)
// const result: number
// result 将被推断为 number 类型