TypeScript : à quoi sert l'opérateur `satisfies` ?
poze 3 months ago343 gadefr
5
Je vois de plus en plus satisfies dans du code TS :
const routes = { home: '/', about: '/about' } satisfies Record<string, string>;
Quelle est la différence avec une annotation const routes: Record<string, string> = ... ?
Dyagnostik IA
Se IA ki fè l. Se pa yon repons — kominote a anba a konfime oswa korije l. Toujou verifye anvan ou fye l.
poze 3 months ago
Stéphanie Louis 2.9k
1 Repons
8
✓✓ Repons yo aksepte
Une annotation *élargit* le type de la variable vers le type annoncé. Tu perds l'information précise :
const a: Record<string, string> = { home: '/', about: '/about' };
a.contact; // pas d'erreur : n'importe quelle clé est acceptée
satisfies vérifie que la valeur est compatible, mais conserve le type inféré :
const b = { home: '/', about: '/about' } satisfies Record<string, string>;
b.contact; // ❌ erreur : la propriété n'existe pas
b.home; // ✅ ok : la clé est connue
En résumé : satisfies = « valide contre ce type, sans me le coller dessus ». Très utile pour les objets de configuration, les maps de routes et les tables de traduction.
Konekte pou di lòt moun si li te mache.
answered 3 months ago
Samuel Joseph 2.7k
Sign in and verify your email to post an answer.