TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。
    9A7BAF6B-B4BD-45b5-AE98-8220D9C2F094.png

    1. // boolean
    2. let isDone: boolean = false;
    3. // number
    4. let decLiteral: number = 6;
    5. let hexLiteral: number = 0xf00d;
    6. let binaryLiteral: number = 0b1010;
    7. let octalLiteral: number = 0o744;
    8. // string
    9. let name: string = "bob";
    10. name = "smith";
    11. // 模板字符串
    12. let name: string = `Gene`;
    13. let age: number = 37;
    14. let sentence: string = `Hello, my name is ${ name }.
    15. I'll be ${ age + 1 } years old next month.`;
    16. // 数组
    17. let list: number[] = [1, 2, 3];
    18. let list: Array<number> = [1, 2, 3];
    19. // 元组 Tuple:元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
    20. // Declare a tuple type
    21. let x: [string, number];
    22. // Initialize it
    23. x = ['hello', 10]; // OK
    24. // Initialize it incorrectly
    25. x = [10, 'hello']; // Error
    26. // any
    27. // 有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。
    28. // 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。 那么我们可以使用 any类型来标记这些变量:
    29. let notSure: any = 4;
    30. notSure = "maybe a string instead";
    31. notSure = false; // okay, definitely a boolean
    32. // void
    33. // 某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void:
    34. function warnUser(): void {
    35. console.log("This is my warning message");
    36. }
    37. // never: never类型表示的是那些永不存在的值的类型

    D941B407-D574-49a6-86A6-DD859D550F34.png

    1. // enum类型是对JavaScript标准数据类型的一个补充。 像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。
    2. enum Color {Red, Green, Blue}
    3. let c: Color = Color.Green;
    4. // 枚举类型提供的一个便利是你可以由枚举的值得到它的名字
    5. enum Color {Red = 1, Green, Blue}
    6. let colorName: string = Color[2];
    7. console.log(colorName); // 显示'Green'因为上面代码里它的值是2

    类型断言:
    类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用。
    类型断言有两种形式:(在TypeScript里使用JSX时,只有 as语法断言是被允许的。)

    1. // 1、“尖括号”语法:
    2. let someValue: any = "this is a string";
    3. let strLength: number = (<string>someValue).length;
    4. // 2、as语法:
    5. let someValue: any = "this is a string";
    6. let strLength: number = (someValue as string).length;