Opaque Types

TypeScript 🔴 Senior

Definition

Types dont la structure interne est masquee aux consommateurs. Seul le module createur peut construire et inspecter la valeur. Variante plus stricte des branded types.

Analogie

Comme une boite noire scellée — on sait ce qu'elle represente mais seul le fabricant peut l'ouvrir.

Exemple de code

declare const __opaque: unique symbol;
type Opaque<T, K> = T & { [__opaque]: K };
type Token = Opaque<string, "Token">;
const createToken = (s: string): Token => s as Token;

Cas d'usage

Encapsuler des tokens, identifiants ou valeurs validees pour empecher la manipulation directe.

Termes lies

#advanced#pattern#safety