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