Rush StackShopBlogEvents
Skip to main content

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

Enum class

A helper for looking up TypeScript enum keys/values.

Signature:

export declare class Enum 

Remarks

TypeScript enums implement a lookup table for mapping between their keys and values:

enum Colors {
Red = 1
}

// Prints "Red"
console.log(Colors[1]);

// Prints "1"
console.log(Colors["Red]);

However the compiler's "noImplicitAny" validation has trouble with these mappings, because there are so many possible types for the map elements:

function f(s: string): Colors | undefined {
// (TS 7015) Element implicitly has an 'any' type because
// index expression is not of type 'number'.
return Colors[s];
}

The Enum helper provides a more specific, strongly typed way to access members:

function f(s: string): Colors | undefined {
return Enum.tryGetValueByKey(Colors, s);
}

Methods

Method

Modifiers

Description

getKeyByNumber(enumObject, value)

static

This API is similar to Enum.tryGetKeyByNumber(), except that it throws an exception if the key is undefined.

getValueByKey(enumObject, key)

static

This API is similar to Enum.tryGetValueByKey(), except that it throws an exception if the key is undefined.

tryGetKeyByNumber(enumObject, value)

static

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

tryGetValueByKey(enumObject, key)

static

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