Appliquer les types pour les membres indexés dans les objets TypeScript
- Utiliser des types mappés pour appliquer des types pour les membres indexés dans les objets TypeScript
- Utiliser des types génériques avec des types mappés pour appliquer des types pour les membres indexés dans les objets TypeScript
-
Utiliser le type
Record
pour appliquer des types pour les membres indexés dans les objets TypeScript
TypeScript est un langage fortement typé, et toutes les constructions utilisées dans le cadre de ce langage sont fortement typées. Il existe des constructions telles que des interfaces ou des types, qui sont des types primitifs et définis par l’utilisateur combinés.
On peut même avoir des types complexes comme des cartes ou des types d’index, qui appartiennent à la catégorie des types mappés dans TypeScript. Ce didacticiel montrera comment les types mappés peuvent être utilisés dans TypeScript.
Utiliser des types mappés pour appliquer des types pour les membres indexés dans les objets TypeScript
Les types mappés peuvent représenter des objets avec un schéma fixe ayant des types fixes pour les clés et les valeurs dans un objet dans TypeScript. Ils sont construits sur la syntaxe des signatures d’index.
type NumberMapType = {
[key : string] : number;
}
// then can be used as
const NumberMap : NumberMapType = {
'one' : 1,
'two' : 2,
'three' : 3
}
Outre la fixation du type des clés d’un objet, les types mappés peuvent être utilisés pour modifier le type de toutes les clés d’un objet à l’aide de signatures d’index.
interface Post {
title : string;
likes : number;
content : string;
}
type PostAvailable = {
[K in keyof Post] : boolean;
}
const postCondition : PostAvailable = {
title : true,
likes : true,
content : false
}
Ce qui suit utilise les clés de l’interface Post
et les associe à un type différent, booléen.
Utiliser des types génériques avec des types mappés pour appliquer des types pour les membres indexés dans les objets TypeScript
Les types mappés peuvent également être utilisés pour créer des objets typés génériques. Les types génériques peuvent être utilisés pour créer des types avec des types dynamiques.
enum Colors {
Red,
Yellow,
Black
}
type x = keyof typeof Colors;
type ColorMap<T> = {
[K in keyof typeof Colors] : T;
}
const action : ColorMap<string> = {
Black : 'Stop',
Red : 'Danger',
Yellow : 'Continue'
}
const ColorCode : ColorMap<Number> = {
Black : 0,
Red : 1,
Yellow : 2
}
Dans l’exemple ci-dessus, l’énumération Colors
a été utilisée dans l’objet typé mappé, et différents types ont été appliqués en fonction du type générique pris en charge par ColorMap<T>
.
Utiliser le type Record
pour appliquer des types pour les membres indexés dans les objets TypeScript
Le type Record
est un type intégré dans TypeScript et peut être utilisé pour appliquer des types sur des objets dans TypeScript. Le type Record
accepte deux champs : les types pour les clés et les valeurs dans un objet.
Il peut être vu comme une carte trouvée dans d’autres langages de programmation.
const LogInfo : Record<string, string> = {
'debug' : 'Debug message',
'info' : 'Info message',
'warn' : 'Warning message',
'fatal' : 'Fatal error'
}
const message = LogInfo['debug'] + " : Hello world";
console.log(message);
Production:
Debug message : Hello world