2022-11-26 21:59

TypeScript入门(3) — 基础类型

王姐姐

WEB前端

(588)

(0)

收藏

1.1. Boolean 类型

let enable: boolean = false;
// ES6:let enable = false;

1.2. Number 类型

let count: number = 0;
// ES6:let count = 0;

1.3. String 类型

let name: string = "Mike";
// ES6:let name = "Mike";

1.4. Array 类型

let strs: string[] = ['aaa','bbb','ccc'];
// ES6:let strs = ['aaa', 'bbb', 'ccc'];
// Array<number>泛型语法
let nums: Array<number> = [1, 2, 3];        
// ES6:let nums = [1, 2, 3];

1.5. Enum枚举类型

        enum Color {
             Red,   //枚举元素列表
             Green,
             Blue
        };
        var c: Color = Color.Green;

ES6:

        let Color;
        (function (Color) {
            Color[Color["Red"] = 0] = "Red";
            Color[Color["Green"] = 1] = "Green";
            Color[Color["Blue"] = 2] = "Blue";
        })(Color || (Color = {}));
        ;
        var c = Color.Green;

 

默认情况下,Red的初始值为 0,Green为1,Blue为2。也可以给成员指定初始值。

        enum Color {
            Red=1,   //枚举元素列表
            Green,
            Blue
        };
        var c: Color = Color.Green;
        console.log(c);//2
        var colorName: string = Color[1];
        console.log(colorName);//Red

在 TypeScript 2.4 版本,允许我们使用字符串枚举。在一个字符串枚举里,每个成员都必须用字符串字面量。

        enum Direction {
            NORTH = "NORTH",
            SOUTH = "SOUTH",
            EAST = "EAST",
            WEST = "WEST",
        }

1.6. Any类型

在 TypeScript 中,任何类型都可以被归为 any 类型。这让 any 类型成为了类型系统的顶级类型。定义为any后,将失去语法感知的功能,就相当于写JavaScript 一样。any可以配合数组来使用。

      var notSure: any = 4;
        notSure = "hello";//字符串类型
        notSure = false;  // 定义为boolen型
        var list: any[] = [1, true, "hello"];
        list[1] = 10; //更改list[1]的值

1.7. Unknown 类型

unknown类型也是一种顶级类型,所有类型都可以赋值给 any,也都可以赋值给unknown类型。unknown 类型只能被赋值给 any 类型和 unknown 类型本身。

        let val: unknown;
        val = true;
        val = 15;
        let val1: unknown = val; // OK
        let val2: any = val; // OK
        //let val3: boolean = val; 这样不允许

 

1.8. Tuple 类型

在 JavaScript 中没有元组的,元组是 TypeScript 中特有的,和数组类似。数组一般存放相同类型的元素,元组可以存放不同类型的元素。

        let fruitTuple;
        fruitTuple = ["Mongo", 12, true];
        console.log(fruitTuple[0]);//Mongo
        console.log(fruitTuple[1]);//12
        console.log(fruitTuple[2]);//true

1.9. Void 类型

void表示没有任何类型。当一个函数没有返回值时,其返回值类型是 void。

        function showInfo(): void {
            console.log("Hello,wanmait!");
        }

以上代码编译生成的 ES6 代码如下:

        function showInfo() {
            console.log("Hello,wanmait!");
        }

void 类型的变量没有什么作用,因为它的值只能为 undefined 或 null:

let unuse: void = undefined;

1.10. Null和Undefined类型

undefined和 null各自的类型分别为 undefined 和 null。

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

默认情况下 null 和 undefined 是所有类型的子类型,可以把 null 和 undefined 赋值给 number、string 等类型的变量。如果指定了--strictNullChecks 标记,null 和 undefined 只能赋值给 void 和它们各自的类型。

1.11. Never 类型

never 类型表示永不存在的值的类型。 例如,never 类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型。

        function error(message: string): never {
          throw new Error(message);
        }       
        function infiniteLoop(): never {
          while (true) {}
        }


0条评论

点击登录参与评论