具有顯式值的列舉
預設情況下,所有 enum
值都將解析為數字。假設你有類似的東西
enum MimeType {
JPEG,
PNG,
PDF
}
例如 MimeType.PDF
背後的真正價值將是 2
。
但有些時候將列舉解析為不同的型別很重要。例如,你從後端/前端/另一個系統收到值,這絕對是一個字串。這可能是一種痛苦,但幸運的是有這種方法:
enum MimeType {
JPEG = <any>'image/jpeg',
PNG = <any>'image/png',
PDF = <any>'application/pdf'
}
這解決了 MimeType.PDF
到 application/pdf
。
從 TypeScript 2.4 開始,可以宣告字串列舉 :
enum MimeType {
JPEG = 'image/jpeg',
PNG = 'image/png',
PDF = 'application/pdf',
}
你可以使用相同的方法顯式提供數值
enum MyType {
Value = 3,
ValueEx = 30,
ValueEx2 = 300
}
例如,Fancier 型別也可以工作,因為非 const 列舉在執行時是真實物件
enum FancyType {
OneArr = <any>[1],
TwoArr = <any>[2, 2],
ThreeArr = <any>[3, 3, 3]
}
變
var FancyType;
(function (FancyType) {
FancyType[FancyType["OneArr"] = [1]] = "OneArr";
FancyType[FancyType["TwoArr"] = [2, 2]] = "TwoArr";
FancyType[FancyType["ThreeArr"] = [3, 3, 3]] = "ThreeArr";
})(FancyType || (FancyType = {}));