Изучение нескольких способов преобразования ключей перечисления TypeScript в строки

Перечисления TypeScript позволяют определить набор именованных констант. Каждая константа имеет соответствующее числовое или строковое значение, что упрощает работу с предопределенным набором параметров. Однако могут возникнуть сценарии, в которых вам потребуется преобразовать ключи перечисления в строки для различных целей, таких как ведение журнала, сериализация или отображение значений в пользовательских интерфейсах. В этой статье мы рассмотрим различные методы достижения такого преобразования в TypeScript, а также приведем примеры кода.

Методы преобразования ключей перечисления TypeScript в строки:

Метод 1: использование Object.keys() и toString()

enum Colors {
  Red = 'RED',
  Green = 'GREEN',
  Blue = 'BLUE'
}
const colorKeys = Object.keys(Colors);
const colorStrings = colorKeys.map(key => Colors[key].toString());
console.log(colorStrings); // Output: ['RED', 'GREEN', 'BLUE']

Метод 2. Использование вспомогательной функции

enum Sizes {
  Small = 'SM',
  Medium = 'MD',
  Large = 'LG'
}
function enumKeysToStrings<T>(enumObject: T): Array<keyof T & string> {
  return Object.keys(enumObject) as Array<keyof T & string>;
}
const sizeKeys = enumKeysToStrings(Sizes);
const sizeStrings = sizeKeys.map(key => Sizes[key]);
console.log(sizeStrings); // Output: ['SM', 'MD', 'LG']

Метод 3. Использование утверждения типа

enum DaysOfWeek {
  Sunday = 'SUN',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT'
}
const dayKeys = Object.keys(DaysOfWeek) as Array<keyof typeof DaysOfWeek>;
const dayStrings = dayKeys.map(key => DaysOfWeek[key]);
console.log(dayStrings); // Output: ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']

Метод 4. Использование специального преобразователя перечислений

enum Status {
  Active = 1,
  Inactive = 0
}
function enumKeyToString<T>(enumObject: T, key: keyof T): string {
  return enumObject[key].toString();
}
const statusString = enumKeyToString(Status, 'Active');
console.log(statusString); // Output: '1'

В этой статье мы рассмотрели несколько методов преобразования ключей перечисления TypeScript в строки. В первом методе для достижения преобразования использовались Object.keys()и toString(). Второй метод представил вспомогательную функцию, которая возвращала массив ключей перечисления в виде строк. Третий метод использовал утверждение типа для преобразования ключей перечисления в строки. Наконец, мы продемонстрировали специальную функцию преобразования перечисления, которая преобразует определенный ключ перечисления в строковое значение. Используя эти методы, вы можете легко извлечь строковое представление ключей перечисления для различных вариантов использования в ваших проектах TypeScript.