Методы получения ключа перечисления TypeScript по значению

Чтобы получить ключ перечисления в TypeScript, используя его значение, вы можете использовать следующие методы:

  1. Итерация по ключам перечисления:

    function getKeyByValue(enumObj: any, value: any): string | undefined {
     for (let key in enumObj) {
       if (enumObj[key] === value) {
         return key;
       }
     }
     return undefined;
    }
  2. Использование объекта обратного сопоставления:

    function getKeyByValue(enumObj: any, value: any): string | undefined {
     const reverseMapping = Object.entries(enumObj).reduce((acc, [key, val]) => {
       acc[val] = key;
       return acc;
     }, {});
     return reverseMapping[value];
    }
  3. Использование оператора keyof TypeScript:

    function getKeyByValue<T extends Record<string, string | number>>(
     enumObj: T,
     value: string | number
    ): keyof T | undefined {
     const keys = Object.keys(enumObj) as Array<keyof T>;
     const foundKey = keys.find(key => enumObj[key] === value);
     return foundKey ?? undefined;
    }

Эти методы позволяют получить ключ перечисления на основе его значения. Не забудьте заменить enumObjфактическим именем вашего объекта перечисления, а valueжелаемым значением, для которого вы хотите найти ключ.