Перечисления — это мощная функция TypeScript, позволяющая определять набор именованных констант. Они позволяют представить группу связанных значений и сделать ваш код более читабельным и удобным в сопровождении. В этой статье мы рассмотрим несколько методов получения всех ключей перечисления в TypeScript. Давайте погрузимся!
Метод 1: использование Object.keys()
Один простой способ получить все ключи перечисления — использовать метод Object.keys(). Этот метод возвращает массив имен собственных перечислимых свойств данного объекта, которые в данном случае являются ключами перечисления.
enum Colors {
Red = "RED",
Green = "GREEN",
Blue = "BLUE",
}
const allKeys = Object.keys(Colors);
console.log(allKeys); // Output: ["Red", "Green", "Blue"]
Метод 2: использование вспомогательной функции
Вы также можете создать вспомогательную функцию, которая использует оператор keyof TypeScript для извлечения всех ключей из перечисления. Этот подход обеспечивает повторное использование решения.
enum Sizes {
Small = "SM",
Medium = "MD",
Large = "LG",
}
function getAllEnumKeys<E extends Record<string, string | number>>(e: E): Array<keyof E> {
return Object.keys(e) as Array<keyof E>;
}
const allSizes = getAllEnumKeys(Sizes);
console.log(allSizes); // Output: ["Small", "Medium", "Large"]
Метод 3: использование цикла for…in
Другой метод — использовать цикл for...inдля перебора объекта перечисления и сбора всех ключей. Однако, поскольку перечисления TypeScript реализованы как объекты, этот метод также может возвращать дополнительные свойства, определенные в цепочке прототипов. При необходимости обязательно отфильтруйте нежелательные свойства.
enum Days {
Monday = "MON",
Tuesday = "TUE",
Wednesday = "WED",
}
function getAllEnumKeysWithForIn<E>(e: E): Array<keyof E> {
const keys: Array<keyof E> = [];
for (const key in e) {
if (e.hasOwnProperty(key)) {
keys.push(key);
}
}
return keys;
}
const allDays = getAllEnumKeysWithForIn(Days);
console.log(allDays); // Output: ["Monday", "Tuesday", "Wednesday"]
В этой статье мы рассмотрели три различных метода получения всех ключей перечисления в TypeScript. Используя Object.keys(), создав вспомогательную функцию или применив цикл for...in, вы можете легко получить массив ключей перечисления для дальнейших манипуляций в вашем коде. Перечисления — ценный инструмент для организации связанных констант, и наличие этих методов в вашем наборе инструментов улучшит ваш опыт разработки TypeScript.
Не забудьте выбрать метод, который лучше всего подходит для вашего конкретного случая использования, и помните о потенциальных ограничениях каждого подхода. Удачного программирования на TypeScript!