TypeScript基本语法---03细讲any任意值

任意值 Any 用来表示允许赋值为任意类型。

什么是任意值类型

如果是一个普通类型,在赋值过程中改变类型是不被允许的:

let num: number = 1;
num = '1';

// error TS2322: Type '"1"' is not assignable to type 'number'.

但是,如果是 any 类型,则允许被赋值为任意类型。

let num: any = 1;
num = '1';

任意值的属性和方法

在任意值上访问任何属性都是允许的:

let anyThing: any = 'hello';
console.log(anyThing.uname);
console.log(anyThing.uname.firstName);

也允许调用任何方法:

let anyThing: any = 'hello';
anyThing.setName('muzidigbig');
anyThing.setName('muzidigbig').sayHello();
anyThing.name.setFirstName('Lee');

可以认为,声明一个变量是任意值之后,对于它的任何操作返回的内容都是任意值类型

未声明类型的变量

变量如果在声明的时候,未指定其类型未进行初始赋值,那么它会被识别为任意值类型:

let someThing;
// 等价于 let someThing: any;

someThing = 'seven';
someThing = 7;

someThing.setName('muzidigbig');

未指定其类型进行初始赋值

遵循 类型推断 的原则:

当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。

如果由于缺乏声明而不能推断出类型,那么它的类型被视作默认的动态 any 类型。

var num = 2;  //类型推断为 number
console.log(typeof num);
num = '12'; //编译错误
//error TS2322: Type '"12"' is not assignable to type 'number'.
console.log(typeof num);

 

 

 

你可能感兴趣的:(TypeScript)