Opaque Types
TypeScript 🔴 SeniorDé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.