Skip to content

createEnum

La fonction createEnum() crée un enum string immuable et typé. L’objet retourné expose chaque valeur comme clé, ainsi que has(), toTuple() et contract().

Exemple interactif

Syntaxe

typescript
type Enum<
	GenericInputs extends [string, ...string[]]
> = {
	[Prop in GenericInputs[number]]: Prop;
} & {
	toTuple(): GenericInputs;
	has(value: string): value is GenericInputs[number];
	contract<
		GenericContractValue extends GenericInputs[number]
	>(
		...args: ...
	): Enum<GenericInputs>;
};

function createEnum<
	GenericInput extends string,
	GenericInputs extends [GenericInput, ...GenericInput[]]
>(
	values: GenericInputs
): Enum<GenericInputs>;

type GetEnumValue<
	GenericEnum extends { toTuple(): [string, ...string[]] }
> = ReturnType<GenericEnum["toTuple"]>[number];

Paramètres

  • values : Tuple non vide de chaînes (les membres de l’enum).

Valeur de retour

Un objet enum immuable avec :

  • Les propriétés nommées (clé/valeur identiques).
  • toTuple() pour récupérer le tuple typé.
  • has(value) pour tester une valeur runtime avec type guard.
  • contract<...>() pour vérifier au niveau des types que l’enum correspond exactement à une union attendue.

Voir aussi

  • kind - Tags runtime/type

Diffusé sous licence MIT.