• 基本类型
    • Boolean
    • Number
    • String
    • Array
    • Enum
    • Any
    • Void

    基本类型

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

    Boolean

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

    1. var isDone: boolean = false;

    Number

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

    1. var height: number = 6;

    String

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

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

    Array

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

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

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

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

    Enum

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

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

    默认情况下,enum类型值从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;

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

    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

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

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

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

    Void

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

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