Opaque Types

TypeScript 🔴 Senior

Définition

Types dont la structure interne est masquée aux consommateurs. Seul le module créateur peut construire et inspecter la valeur. Variante plus stricte des branded types.

Analogie

Comme une boite noire scellée — on sait ce qu'elle représente 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 validées pour empêcher la manipulation directe.

#advanced#pattern#safety

← → au clavier pour passer d'une fiche à l'autre