Avatar ·

Que signifie "keyof typeof" en TypeScript et comment cela fonctionne-t-il ?

Bonjour à tous ! J'ai commencé à étudier TypeScript récemment et je suis tombé sur la construction `keyof typeof` que l'on rencontre dans certains exemples de code. Je comprends que `keyof` est utilisé pour obtenir les clés d'une interface ou d'un type, et que `typeof` est utilisé pour obtenir le type d'une variable. Mais quand on les combine ensemble, je suis perdu.\n\nPar exemple, j'ai ce code :\n\n```typescript\nconst colors = {\n red: '#ff0000',\n green: '#00ff00',\n blue: '#0000ff'\n};\n\ntype ColorKeys = keyof typeof colors;\n```\n\nQue se passe-t-il ici ? Pourquoi ne peut-on pas simplement écrire `keyof colors` ? Et qu'obtient-on exactement à la fin ? J'ai essayé d'utiliser cela dans une fonction qui prend une clé d'objet, mais TypeScript se plaint des types.\n\nPouvez-vous expliquer en termes simples comment fonctionne la combinaison `keyof typeof` et dans quelles situations il est préférable de l'utiliser ?