基本类型

程序的运行离不开基本的数据类型,如:numbers, strings, structures, boolean等。TypeScript支持所有你在JavaScript中会用到的数据类型的同时,还添加了便利的枚举类型(enumeration type)以供使用。

布尔类型

真/假值是最基本的数据类型,这种数据类型在JavaScript和TypeScript中(以及其他语言)称为布尔类型(boolean)。

  1. var isDone: boolean = false;

数字

同JavaScript一样,TypeScript中数字都是浮点数。这些浮点数都被称作数字类型(number)。

  1. var height: number = 6;

字符串

文本类型的数据是用JavaScript编写网页和服务器等程序的基础。同其他语言一样,我们使用字符串(string)来指代这些文本类型的数据。在TypeScript中,你可以像在JavaScript中那样,使用双引号(””)或单引号(’’)来表示字符串。

  1. var name: string = "bob";
  2. name = 'smith';

数组

同JavaScript一样,TypeScript中我们也可以使用数组。我们可以使用两种不同的方式来写数组。第一种是在元素类型后面附上中括号([]),来表示这种类型元素的数组:

  1. var list:number[] = [1, 2, 3];

第二种方式是使用泛型数组类型,形式如Array

  1. var list:Array<number> = [1, 2, 3];

枚举

TypeScript拓展了JavaScript原生的标准数据类型集,增加了枚举类型(enum)。枚举是一种很有用的数据类型,就像C#等语言中一样,它提供了一种给数字类型的值,设置易于辨别的名字的方法。

  1. enum Color {Red, Green, Blue};
  2. var c: Color = Color.Green;

在默认情况下,枚举类型会从数字0开始标记它的元素。我们可以通过人为地设置元素的数值来改变默认值。例如,上面的例子我们可以设置成从1开始计数:

  1. enum Color {Red = 1, Green, Blue};
  2. var c: Color = Color.Green;

我们甚至可以给所有的枚举元素设置数值:

  1. enum Color {Red = 1, Green = 2, Blue = 4};
  2. var c: Color = Color.Green;

枚举类型有一个便捷特性,我们也可以直接用数值来查找其对应的枚举元素的名称。举例来说,如果我们有一个值为2,但我们不确定这个数值对应枚举类型中的哪个元素,那我们可以直接查找这个数值对应的名称:

  1. enum Color {Red = 1, Green, Blue};
  2. var colorName: string = Color[2];
  3. alert(colorName);

Any

当我们编写应用时,我们可能会需要描述一些类型不明确的变量。因为这些变量的值可能来源于一些动态的内容,如用户或第三方提供的库。在这种情况下,我们需要略过对这些变量进行的类型检查,让它们直接通过编译时的检查。为了实现这一目的,我们可以把它们标识为’any’类型:

  1. var notSure: any = 4;
  2. notSure = "maybe a string instead";
  3. notSure = false; // okay, definitely a boolean

使用’any’类型是处理我们已有的JavaScript代码的一种强大的方式。我们可以用它来逐渐增加或减少在编译过程中的类型检查。

当我们知道一个类型的部分数据类型,却又不确定所有的数据类型时,使用’any’可以为我们提供不少方便。比如你有一个数组,但是这个数组中的元素属于不同的数据类型,那你可以这么做:

  1. var list:any[] = [1, true, "free"];
  2. list[1] = 100;

Void

与’any’对应的数据类型是’void’,它代表缺省类型。没有返回值的函数就可以认为是’void’类型:

  1. function warnUser(): void {
  2. alert("This is my warning message");
  3. }