Aplicar tipos para miembros indexados en objetos de TypeScript

Shuvayan Ghosh Dastidar 30 enero 2023
  1. Usar tipos asignados para aplicar tipos para miembros indexados en objetos de TypeScript
  2. Use tipos genéricos con tipos asignados para aplicar tipos para miembros indexados en objetos de TypeScript
  3. Use el tipo Record para aplicar tipos para miembros indexados en objetos TypeScript
Aplicar tipos para miembros indexados en objetos de TypeScript

TypeScript es un lenguaje fuertemente tipado y todas las construcciones utilizadas como parte de este lenguaje están fuertemente tipadas. Hay construcciones como interfaces o tipos, que son tipos primitivos y definidos por el usuario combinados.

Incluso se pueden tener tipos complejos como mapas o tipos de índice, que se encuentran en la categoría de tipos asignados en TypeScript. Este tutorial demostrará cómo se pueden usar los tipos asignados en TypeScript.

Usar tipos asignados para aplicar tipos para miembros indexados en objetos de TypeScript

Los tipos asignados pueden representar objetos con un esquema fijo que tiene tipos fijos para las claves y los valores en un objeto en TypeScript. Se basan en la sintaxis de las firmas de índice.

type NumberMapType = {
    [key : string] : number;
}

// then can be used as
const NumberMap : NumberMapType = {
    'one' : 1,
    'two' : 2,
    'three' : 3
}

Además de fijar el tipo de las claves de un objeto, los tipos asignados se pueden usar para cambiar el tipo de todas las claves de un objeto mediante firmas de índice.

interface Post {
    title : string;
    likes : number;
    content : string;
}

type PostAvailable = {
    [K in keyof Post] : boolean;
}

const postCondition : PostAvailable = {
    title : true,
    likes : true,
    content : false
}

Lo siguiente utiliza las claves de la interfaz Post y las asigna a un tipo diferente, booleano.

Use tipos genéricos con tipos asignados para aplicar tipos para miembros indexados en objetos de TypeScript

Los tipos mapeados también se pueden usar para crear objetos con tipos genéricos. Los tipos genéricos se pueden usar para crear tipos con tipos dinámicos.

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
}

En el ejemplo anterior, la enumeración Colors se usó en el objeto con tipo asignado y se aplicaron diferentes tipos de acuerdo con el tipo genérico admitido por ColorMap<T>.

Use el tipo Record para aplicar tipos para miembros indexados en objetos TypeScript

El tipo Record es un tipo incorporado en TypeScript y se puede usar para aplicar tipos en objetos en TypeScript. El tipo Record acepta dos campos: los tipos para las claves y los valores en un objeto.

Puede verse como un mapa que se encuentra en otros lenguajes de programación.

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);

Producción :

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

Artículo relacionado - TypeScript Map