Home > @rushstack/node-core-library > Enum > tryGetKeyByNumber

Enum.tryGetKeyByNumber() method

Returns an enum string key, given its numeric value. Returns undefined if no matching value is found.

Signature:

static tryGetKeyByNumber<TEnumValue, TEnumObject extends {
        [key: string]: TEnumValue;
    }>(enumObject: TEnumObject, value: number): keyof typeof enumObject | undefined;

Parameters

Parameter Type Description
enumObject TEnumObject  
value number  

Returns:

keyof typeof enumObject | undefined

Remarks

The TypeScript compiler only creates a reverse mapping for enum members whose value is numeric. For example:

enum E {
  A = 1,
  B = 'c'
}

// Prints "A"
console.log(E[1]);

// Prints "undefined"
console.log(E["c"]);

Example

Example usage:

enum Colors {
  Red = 1,
  Blue = 'blue'
}

// Prints "Red"
console.log(Enum.tryGetKeyByNumber(Colors, 1));

// Prints "undefined"
console.log(Enum.tryGetKeyByNumber(Colors, -1));