最近在学习Typescript发现一个有趣的事情
enum Color { red, green, blue };
console.log(Color);
let c: Color = Color.green;
var Color;
(function (Color) {
Color[Color["red"] = 0] = "red";
Color[Color["green"] = 1] = "green";
Color[Color["blue"] = 2] = "blue";
})(Color || (Color = {}));
;
console.log(Color); {0: "red", 1: "green", 2: "blue", red: 0, green: 1, blue: 2}
var c = Color.green;
- 注意这行代码 Color[Color["red"] = 0] = "red"; 巧妙的运用了 对象属性赋值 返回 属性的值 (数组也是对象),这里做了两次赋值,第一次Color["red"]=0,返回值是0,然后Color[0] = "red";
总结
- var、let、const定义一个变量或常量,赋值成功返回结果是 undefined,没有赋值成功会报错。
- 进行对象属性,数组元素赋值时 返回的是对象属性、数组元素的 赋值成功后的值。