如果声明时没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。常见:
let myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
// test.ts:2:1 - error TS2322: Type 'number' is not assignable to type 'string'.
如果声明时没有赋值,会被类型推论为any
任意值
当声明为any类型时,即可以像Javascript的动态类型相似,允许被赋值给任意类型。
声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:
let something;
something = 'seven';
something = 7;
something.setName('Tom');
等价于
let something: any;
something = 'seven';
something = 7;
something.setName('Tom');