在构建/编译过程中将TypeScript枚举转换为字符串

3

我最近在我的类型中从使用字符串改为使用枚举,例如:

export interface Dog {
  size: "SMALL" | "MEDIUM" | "BIG"
} 

成为

export enum SIZE {
  SMALL = "SMALL",
  MEDIUM = "MEDIUM",
  BIG = "BIG"
}

type Dog {
  size: SIZE
}

但这现在在我的项目中引起了问题。我有一个名为@MyApp/types的包,在构建dist文件夹时,它曾经被从生产代码中删除过。使用枚举类型,它现在是持久化的,也就是说,这段代码包含在我的dist中。

const types_1 = require("@MyApp/types");

// ...

types_1.SIZE.BIG

有没有一种方法可以告诉TypeScript编译器将上述内容更改为简单的形式?
"BIG"

那么 types 包不包含在 dist 构建中?


1
你研究过const enum吗? - jonrsharpe
1个回答

1
如@jonsharpe所述,您可以使用const来创建枚举类型。请参考我的示例:
interface Dog {
  size: SIZE
} 

 const enum SIZE {
  SMALL = "SMALL",
  MEDIUM = "MEDIUM",
  BIG = "BIG"
}


var dog:Dog = { size: SIZE.MEDIUM };

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接