L'opérateur keyof produit l'union des clés d'un type objet sous forme de littéraux. Combiné aux types indexés (T[K]), il permet de typer l'accès à une propriété dont le nom est choisi dynamiquement, et de garantir que la clé existe et que le type retourné est le bon.
Exemple
function lire<T, K extends keyof T>(obj: T, cle: K): T[K] {
return obj[cle];
}