TypeScript学习(二)——数据类型一

来源:互联网 发布:vb修改word文档的内容 编辑:程序博客网 时间:2024/06/15 02:33

JavaScript类型:原始数据类型和对象数据类型
原始数据类型:布尔值、数值、字符串、null、undefined、Symbol(ES6中的新类型)。

布尔值

使用boolean定义布尔值类型:

let bol: boolean = false;

在TypeScript中,boolean是JS中的基本类型,而Boolean是JS中的构造函数。

数值

使用number定义数值类型:

let aNumber: number = 6;

字符串

使用String定义字符串类型:

let aString:string = 'aa';let sentence: string = `Hello,this is ${aString}`; //模板字符串

注: ` 用来定义模板字符串,${expr}用来在模板字符串中嵌入表达式。

空值

JS中没有空值(void)的概念,在TypeScript中表示没有任何返回值的函数:

function alertName(): void {    alert('What is your name?');}

Null 和Undefined

在 TypeScript 中,可以使用 null 和 undefined 来定义这两个原始数据类型:

let u: undefined = undefined;let n: null = null;

undefined类型的变量只能被赋值为undefined,null类型的变量只能被赋值为null。
undefined和null是所有类型的子类型。undefined类型的变量,可以赋值给number类型的变量。

let num: number = undefined;

任意值

Any用来表示允许赋值为任意类型。
普通的类型在赋值过程中不允许改变类型,any类型允许被赋值为任意类型:

let a: any = 'good';a = 7;

在任意值上允许访问任何属性以及调用任何方法。
声明一个变量为任意值后,对它的任何操作,返回的内容的类型都是任意值。

类型推论

如果没有明确的指定类型,TypeScript会依照类型推论的规则推断出一个类型。

let a = 'good'; //没有指定类型,默认为stringlet b = 2; //没有指定类型,默认为number

联合类型

表示取值可以是多种类型中的一种。

let a: string | number; //表示a只能赋string和number类型的值a = 'good';a = 2;
function getLength(something: string | number): number {    return something.length;//在不知道something的确切类型时,只能访问此联合类型的共有的属性和方法,但是.length方法只在string类型中有,而number中没有,报错。}

联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型:

let myFavoriteNumber: string | number;myFavoriteNumber = 'seven';//类型推断为stringconsole.log(myFavoriteNumber.length); // 5,正确myFavoriteNumber = 7;console.log(myFavoriteNumber.length); // 编译时报错