因為之前網上查好多博客都是只說最基礎的,所以這里記錄一下,最基礎的放在最后面。
這里重點要記錄的是枚舉成員的值可以是字符串(字符串枚舉,因為網上大部分只介紹常數枚舉),需要注意的一點是,和數字值不同:字符串枚舉沒有自增長的行為,枚舉成員必須設置初始值。
字符串枚舉
默認情況下,枚舉成員的值是數字,但你也可以使用字符串或混合值作為枚舉成員的值。比如:
enum ErrorCode {NotFound = "404",ServerError = "500",Unauthorized = "401"
}console.log(ErrorCode.NotFound); // 輸出: "404"
常數枚舉
常數枚舉在編譯時會被移除,只保留枚舉成員的值。這可以減少編譯后的代碼量,適用于一些只需要值而不需要名稱的情況。比如:
const enum Size {Small = "S",Medium = "M",Large = "L"
}let selectedSize: Size = Size.Medium;
console.log(selectedSize); // 輸出: "M"
指定枚舉成員的值
在枚舉成員后可以顯式指定其值,未指定的情況下會默認遞增。比如:
enum LogLevel {Error = 1,Warn,Info,Debug
}let currentLogLevel: LogLevel = LogLevel.Info;
console.log(currentLogLevel); // 輸出: 3
反向映射
枚舉類型在編譯為 JavaScript 時會生成雙向映射,可以通過枚舉成員的名稱獲取對應的值,也可以通過值獲取對應的枚舉成員。比如:
enum Weekday {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}console.log(Weekday.Sunday); // 輸出: 0
console.log(Weekday[0]); // 輸出: "Sunday"
枚舉作為類型
枚舉類型本身可以作為類型來使用,用于約束變量的取值范圍。比如:
enum Gender {Male,Female
}interface Person {name: string;age: number;gender: Gender;
}let person: Person = {name: "Alice",age: 30,gender: Gender.Female
};
基本用法
基本用法如下:
enum Direction {Up,Down,Left,Right
}let userDirection: Direction = Direction.Left;
console.log(userDirection); // 輸出: 2
述代碼中,Direction 枚舉類型定義了四個成員:Up、Down、Left 和 Right。每個成員都會被分配一個默認的數字值,從 0 開始遞增。在定義枚舉變量時,可以直接使用成員名稱進行賦值。
由于對enum類型用的不多,所以記錄一下學習。
網上關于enum類型的說明都差不多,無非是定義的枚舉成員的默認值從零開始遞增,如果指定了數值就從指定的數值開始遞增。在使用枚舉類型時,可以像使用普通類型一樣聲明變量并賦予其枚舉值。
在 TypeScript 中,可以使用 enum 關鍵字來定義枚舉類型(enumeration types)。枚舉類型用于定義一組命名的常量值,使代碼更加可讀性強、維護性高。枚舉(Enum)類型用于取值被限定在一定范圍內的場景,比如性別只有男和女,某個機構的部門只有固定幾個(不考慮部門整編重組的情況下)。
基本用法是枚舉類型的每個成員都會被分配一個默認的數字值,從 0 開始遞增。在定義枚舉變量時,可以直接使用成員名稱進行賦值。
希望本文對您有所幫助,也希望路過的大佬不吝賜教!