基本类型

为了让我们的编程更加高效,我们总是需要一些基本类型的数据,如:number, string,structure,boolean等等。TypeScript支持所有JavaScript中的基本类型,并且还有它额外添加的类型,如enumeration

Boolean

真/假值总是最基本的数据类型,在JavaScriptTypeScript(以及许多其他编程语言)中,这个类型都叫作boolean

var isDone: boolean = false;

Number

和在JavaScript中一样,所有TypeScript中的数字类型值都是浮点数。这些浮点数的类型名叫作number

var height: number = 6;

String

文本数据是又一个编程语言中的基本类型。与其他的语言一样,在TypeScript中,它类型名叫作string。与JavaScript中一样,TypeScript中的string类型值,被一对双引号(")或单引号(')所包围。

var name: string = "bob";
name = 'smith';

Array

JavaScript一样,TypeScript同样也允许你使用数组值,它的类型名为Array。它有两种书写方式。第一种,即在元素的类型后加上[]来注明这是一个此类型元素的数组:

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

第二种方式,是使用泛型数组类型,Array<elemType>:

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

Enum

enum类型是在JavaScript的标准类型集合的基础之上,额外添加的类型。和C#语言中一样,enum类型赋予数字值的集合一个更友好的名字。

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

默认情况下,enum类型值从0开始,对它的成员进行枚举。你也可以通过手动地为成员赋值,来改变它。例如,你可以让初始值变为1

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

甚至你也可以手动地为所有成员赋值:

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

enum类型值的一个十分方便特性就是,你可以通过这个值对应的数字,来获取这个值。例如,我们有数字值2,却不知道它在Color中是映射到哪个值,我们便可以通过此数字来查找:

enum Color {Red = 1, Green, Blue};
var colorName: string = Color[2];

alert(colorName);

Any

当我们在写程序时,我们有时可能会遇到我们并不能知道其类型的值。这些值可能来自于一些动态的上下文,比如,来自用户,或来自第三方库。在这种情况下,我们希望暂时放弃类型检查,让它们可以通过编译。我们可以通过为这些值添加类型any来实现:

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

在与现存的JavaScript代码交互时,any类型十分有用。

any类型,在你仅仅能明确这个值的一部分类型信息时,也十分有用。比如,你可能会遇到一个包含不同类型值的数组:

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

list[1] = 100;

Void

void可能理解为是any的对立面。它表示完全没有类型。你可以在没有返回值的函数类型定义中,常常看见它:

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