ts中any类型与unknown类型的定义
: any // 可以赋予任意类型的值
: unknow // 未知类型的值
相同点 | 不同点 |
---|---|
都可以赋予任意类型的值 | unknown类型的值不能直接赋值给其他变量 |
let anyVal: any
anyVal = 5 // number
anyVal = 'str' // string
let unknowVal: unknow
unknowVal = 6
unknowVal = 'str'
let strVal: string
strVal = 'str'
strVal = anyVal
strval = unknowVal // TS2322: Type 'unknown' is not assignable to type 'string'.
- 如果有unknown类型的需要直接赋值给其他变量可以用下面三种
if (typeof unknown == 'string') {
strVal = unknown
}
strVal = unknownVal as string // 类型断言,告诉解析器变量实际类型
strVal = <string>unknownVal