一、枚举
定义一些带名字的常量
//数字枚举enum Direction { Up = 1, Down, Left, Right }//Direction.Up的值为 1, Down为 2, Left为 3, Right为 4//字符串枚举enum Direction { Up = "UP", Down = "DOWN", Left = "LEFT", Right = "RIGHT", }//异构枚举enum BooleanLikeHeterogeneousEnum { No = 0, Yes = "YES", }//运行时的枚举enum E { X, Y, Z }function f(obj: { X: number }) { return obj.X; } f(E);//反向映射enum Enum { A } let a = Enum.A; let nameOfA = Enum[a]; // "A"//const枚举//为了避免在额外生成的代码上的开销和额外的非直接的对枚举成员的访问const enum Directions { Up, Down, Left, Right }//外部枚举 用来描述已经存在的枚举类型的形状declare enum Enum { A = 1, B, C = 2}
二、类型推论
推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时
//基础let x = 3;//变量x的类型被推断为数字//最佳通用类型//当需要从几个表达式中推断类型时候,//会使用这些表达式的类型来推断出一个最合适的通用类型let x = [0, 1, null];//联合数组类型(Rhino | Elephant | Snake)[]
作者:大富_大贵
链接:https://www.jianshu.com/p/727194f8bd0c