UNPKG

enum-plus

Version:

A drop-in replacement for native enum. Like native enum but much better!

41 lines (40 loc) 1.32 kB
import type { EnumItemInit, EnumItemOptions, EnumKey, EnumValue, ValueTypeFromSingleInit } from './types'; import { ENUM_ITEM } from './utils'; /** * Enum item class * * @template V General type of value * @template K General type of key * @template T Initialize object of enum item */ export declare class EnumItemClass<T extends EnumItemInit<V>, K extends EnumKey<any> = string, V extends EnumValue = ValueTypeFromSingleInit<T, K>> { #private; /** Enum item value */ readonly value: V; /** Enum item label (or called display name) */ readonly label: string; /** Enum item key */ readonly key: K; /** Original initialization object */ readonly raw: T; /** * **EN:** A boolean value indicates that this is an enum item instance. * * **CN:** 布尔值,表示这是一个枚举项实例 */ readonly [ENUM_ITEM] = true; /** * Instantiate an enum item * * @param key Enum item key * @param value Enum item value * @param label Enum item display name * @param raw Original initialization object * @param options Construction options */ constructor(key: K, value: V, label: string, raw: T, options?: EnumItemOptions); readonly(): this; toString(): any; toLocaleString(): any; valueOf(): V; }