- 任意值any用来表示允许赋值为任意类型。如果是一个普通类型,在赋值过程中改变类型是不被允许的:
let str: string = 'hello
str = 1 // 编译报错
但如果是any类型,则允许被赋值为任意类型。
let str: any = 'hello'
str = 1 //不会报错
- 任意值得属性和方法
在任意值上访问任何属性都是允许的:
let str: string = 'hello'
console.log(str.name) //不会报错
也允许访问任意方法:
let str: string = 'hello'
str.setName('aaa')
str.setName('aaa').sayHello()
- 未声明的变量
变量如果在声明的时候,未指定其类型且未赋值,那么它会被识别为任意值类型。
let str // 会被识别为any
str = 'hello'
str = 10
str.setName('tom')