Appearance
unknown 类型
代表变量此时是一个未知类型,当需要使用的时候通过类型断言覆盖其类型
特点
- 不能对 unknown 类型的变量进行任何读操作
ts
let unknown1: unknown = { name: 1 }
// 当我们调用name属性的时候会报错(TS提示)
unknown1.name
// 写操作
unknown1 = 12 // 这是可以的 , 这时候任然还是 unknown
- unknown 类型的变量可以是任何类型(跟 any 一样)
ts
// unknown
let unknown1: unknown = { name: 1 }
// unknown
let unknown2: unknown = 1
// unknown
let unknown3: unknown = null
- 使用的时候需要类型断言去覆盖类型
ts
// unknown
let unknown2: unknown = { name: 1 }
// 需要类型断言去访问unknown类型
console.log((<{ name: number }>unknown2).name)
console.log((unknown2 as { name: number }).name)