Aplicar tipos para miembros indexados en objetos de TypeScript
- Usar tipos asignados para aplicar tipos para miembros indexados en objetos de TypeScript
- Use tipos genéricos con tipos asignados para aplicar tipos para miembros indexados en objetos de TypeScript
-
Use el tipo
Record
para aplicar tipos para miembros indexados en objetos 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