Konverter TypeScript-enumerasjoner til strenger under bygging/kompilering
Jeg byttet nylig fra å bruke strenger i typene mine til å bruke enums, det vil si
export interface Dog {
size: "SMALL" | "MEDIUM" | "BIG"
}
blir
export enum SIZE {
SMALL = "SMALL",
MEDIUM = "MEDIUM",
BIG = "BIG"
}
type Dog {
size: SIZE
}
Men dette forårsaker problemer i prosjektet mitt nå. Jeg har en pakke kalt @MyApp/types som tidligere ble fjernet fra produksjonskoden når jeg bygde min dist-mappe. Med enums vedvarer det nå, dvs. denne koden er inkludert i min dist.
const types_1 = require("@MyApp/types");
// ...
types_1.SIZE.BIG
Finnes det en måte å fortelle TypeScript-kompilatoren å endre ovenstående til å simpelthen være
"BIG"
Så types-pakken er ikke inkludert i dist-bygget?
Svar #1
Som det er uttalt av @jonsharpe, kan du bruke const for opprettelse av enum-type. Se mitt eksempel:
interface Dog {
size: SIZE
}
const enum SIZE {
SMALL = "SMALL",
MEDIUM = "MEDIUM",
BIG = "BIG"
}
var dog:Dog = { size: SIZE.MEDIUM };
