Skip to main content

TypeScript Const Enums

We don't use Typescript enums because they are not fully type-safe and can cause surprises. Instead of using enums, we use constant objects.

export const PasskeyActions = {
Register: "register",
Authenticate: "authenticate",
} as const;

export type PasskeyActionValue = (typeof PasskeyActions)[keyof typeof PasskeyActions];

declare function usePasskeyAction(action: PasskeyActionValue): void;

usePasskey(PasskeyActions.Register); // ✅ Valid
usePasskey(0); // ❌ Invalid

Resources Used