任意值Any
任意值
任意值(Any)用来表示允许复制为任意类型。
什么是任意值类型
如果是一个普通类型,在赋值过程中改变类型是不被允许的:
let myFavoriteNumber:string = 'seven';
myFavoriteNumber = 7; // 不能将类型"7"分配给类型"string"。但如果是any类型,则允许被赋值为任意类型。
let myFavoriteNumber: any = 'seven';
myFavoriteNumber = 7;任意值的属性和方法
在任意值上访问任何属性都是允许的,也允许调用任何方法:
let anyThing: any ='hello';
anyThing.toString();
anyThing.length;
anyThing.toNumber();
anyThing.setName();
anyThing.sayHello();需要注意的是,这里的允许访问任何属性和方法,是指TypeScript不会编译报错,但是如果变量没有这个方法,在js编译过程会正常报错,但是不会在TypeScript编译过程校验,所以这里说可以访问任何属性和方法。
而且其他普通类型,例如number:
let num:number = 1;
num.length; // 类型"number"上不存在属性"length"。编译就会报错,不允许访问不存在的属性和方法。
并且,声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
而其他普通类型,不允许改变类型,所以到这里,类型从开始申明了到最后是一致的。
未声明类型的变量
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:
即
let something;等价于
let something:any;