Dans TypeScript, le mot-clé 'keyof' est utilisé pour spécifier une contrainte générique. Son utilisation principale est en relation avec les fonctionnalités avancées de TypeScript comme les génériques et les index types. Il permet de créer des types plus dynamiques et flexibles.
Le mot-clé keyof
en TypeScript est un opérateur de type qui crée un type de l'union de tous les noms de propriétés littéralement connus d'un autre type. C'est un moyen de référencer le type de toutes les propriétés d'un type donné.
Supposons que nous ayons le type suivant :
type Point = {
x: number;
y: number;
}
On peut utiliser le keyof
pour créer un nouveau type qui est l'union des noms de propriétés du Point
:
type PointKey = keyof Point; // "x" | "y"
Maintenant, PointKey
est un type qui peut être soit "x"
, soit "y"
.
La combinaison de keyof
avec des génériques permet une plus grande flexibilité dans un code TypeScript. Cela peut être utilisé pour assurer que l'entrée d'une fonction correspond à la clé d'un objet. Par exemple :
function getProperty<T, K extends keyof T>(obj: T, key: K) {
return obj[key]; // Inferred type is T[K]
}
let x = {a: 1, b: 2, c: 3, d: 4};
console.log(getProperty(x, "a"));
Dans cet exemple, K extends keyof T
sert de contrainte générique pour s'assurer que la valeur de key
est l'une des propriétés de l'objet obj
.
Le mot-clé keyof
est un outil puissant dans la boîte à outils TypeScript qui, lorsqu'il est combiné avec d'autres fonctionnalités de type avancées, peut aider à créer un code plus sûr et plus facile à maintenir. Il est recommandé de l'utiliser lorsque cela est approprié pour améliorer la sécurité et la souplesse des types de votre code.