Appliquer les types pour les membres indexés dans les objets TypeScript

Shuvayan Ghosh Dastidar 30 janvier 2023
  1. Utiliser des types mappés pour appliquer des types pour les membres indexés dans les objets TypeScript
  2. Utiliser des types génériques avec des types mappés pour appliquer des types pour les membres indexés dans les objets TypeScript
  3. Utiliser le type Record pour appliquer des types pour les membres indexés dans les objets TypeScript
Appliquer les 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
Shuvayan Ghosh Dastidar avatar Shuvayan Ghosh Dastidar avatar

Shuvayan is a professional software developer with an avid interest in all kinds of technology and programming languages. He loves all kinds of problem solving and writing about his experiences.

LinkedIn Website

Article connexe - TypeScript Map