Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

361
Vistas
Texto mecanografiado: cómo definir un objeto con muchas claves desconocidas

Estoy creando una aplicación que accede a una API que devuelve un objeto con muchas claves desconocidas, cada clave representa una identificación de usuario.

Ejemplo:

 const response = { "random id1": {name: "user1"}, "random id2": {name: "user2"}, ... "random id100": {name: "user100"} }

Sé que si solo tengo una clave desconocida, puedo definir usando algo como:

 type MyDefinition = { [key: string]: Metadata }

Pero, ¿cómo puedo definir un objeto con tantas claves diferentes?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Extendiendo el comentario de @ASDFGerte. Puede generar un rango de números de 0 a 998 en TypeScript 4.5:

 type MAXIMUM_ALLOWED_BOUNDARY = 999 type ComputeRange< N extends number, Result extends Array<unknown> = [], > = (Result['length'] extends N ? Result : ComputeRange<N, [...Result, Result['length']]> ) // 0 , 1, 2 ... 998 type NumberRange = ComputeRange<MAXIMUM_ALLOWED_BOUNDARY>[number] type Name<T extends string> = { name: T } type CustomResponse = { [Prop in NumberRange]: Record<`random id${Prop}`, Name<`id${Prop}`>> }

Patio de juegos

ingrese la descripción de la imagen aquí

Aquí y aquí puede encontrar una explicación del rango de números.

Probablemente hayas notado que hay un límite que no puedes cruzar.

Con el enfoque anterior, no permitirá random id1e4 .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar un tipo definido con una cadena de plantilla como esta:

 const response: { [key: `random id${number}`]: { name: string }} = { "random id1": {name: "user1"}, "random id2": {name: "user2"}, "random id100": {name: "user100"} }

Puedes verlo en acción en este patio de juegos de TypeScript .

about 4 years ago · Juan Pablo Isaza Denunciar

0

[key: string] permite cualquier cantidad de cadenas únicas como claves.

 type Metadata = { name: string } type MyDefinition = { [key: string]: Metadata } const response: MyDefinition = { "random id1": {name: "user1"}, "random id2": {name: "user2"}, // ... "random id100": {name: "user100"}, };

Pruébalo en TypeScript Playground

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda