TypeScript 中我们没必要使用枚举吗?【讨论】
枚举对编译后的 JavaScript 文件有影响
我的想法
嗨,开发者们!我是Taishi,温哥华的一名软件开发人员!
我最近一直在考虑使用枚举,我的结论是,如果可能的话,我们不应该使用枚举。
但为什么?
枚举对编译后的 JavaScript 文件有影响
通常tsc
命令会删除所有 TypeScript 特有的内容,例如
- 类型定义
- 接口定义
- 类型注解
这意味着 TypeScript 对编译后的 JavaScript 文件没有任何影响。
另一方面,如果使用枚举,TypeScript 会对 JS 文件产生一些影响。
让我们比较一下它们!
案例 1:联合类型
TypeScript
type BigTechz = "Google" | "Apple" | "Amazon";
const myFav: BigTechz = "Apple";
之后的 Javascripttsc
"use strict";
const myFav = "Apple";
案例 2:枚举
enum BigTechz {
Google = "Google",
Apple = "Apple",
Amazon = "Amazon",
}
const myFav: BigTechz = BigTechz.Apple;
之后的 Javascripttsc
"use strict";
var BigTechz;
(function (BigTechz) {
BigTechz["Google"] = "Google";
BigTechz["Apple"] = "Apple";
BigTechz["Amazon"] = "Amazon";
})(BigTechz || (BigTechz = {}));
const myFav = BigTechz.Apple;
我的想法
如上所示,枚举作为对象保留在 JavaScript 文件中……这会导致打包体积增大。
更重要的是,我认为 TypeScript 应该不会对编译后的 JavaScript 文件产生任何影响。
tsc
当您编写代码和使用命令编译 TS 文件时,TypeScript 基本上是一个类型检查器。
大多数时候,您可以使用其他 TS 语法代替枚举,我认为如果可能的话我们应该这样做(也许我只是更喜欢 Union 类型🙄)!
我想听听其他开发人员对这个话题的看法,如果您能发表评论我将不胜感激!
谢谢!
鏂囩珷鏉ユ簮锛�https://dev.to/taishi/we-shouldnt-use-enums-on-typescript-anymore-18d3