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

163
Vistas
¿Cómo usar un bucle para crear un objeto con claves de una lista en mecanografiado sin usar `Parcial`?

Visión general

Estoy tratando de crear e inicializar un objeto con claves conocidas, sin embargo, el objeto vacío inicial {} que necesito rompe mi escritura.

El problema:

Tengo una lista de valores que quiero usar como claves y quiero inicializar un objeto con esas claves. En python haría algo como:

 myDict = {key: value for (key, value) in zip(myKeys, [[]]*len(myKeys))}

Esto debería darle a myDict el tipo Record<myKeys, string[]>

En TS, parece que no puedo tener la misma suerte, ya que necesito inicializar el objeto en una lista vacía antes de poder llenarlo con mis claves/valores. Preferiría no tener que llamarlo parcial y luego forzarlo al tipo correcto.

lo que he intentado:

Yo he tratado:

 const allPlanFeatures: Partial<Record<ExtensivePlanHandle, string[]>> = {}; for (const planId of extensivePlanList) { const features = getFeaturesForPlan(planHandleToMonthly[planId], is4kEnabled, exportFlow); allPlanFeatures[planId] = features; } return allPlanFeatures as Record<ExtensivePlanHandle, string[]>;

y

 const allPlanFeatures: Partial<Record<ExtensivePlanHandle, string[]>> = extensivePlanList.reduce( (a, planHandle) => ({ ...a, [planHandle]: getFeaturesForPlan( planHandleToMonthly[planHandle], is4kEnabled, exportFlow ), }), {} ); return allPlanFeatures as Record<ExtensivePlanHandle, string[]>;

Estos terminan con el efecto deseado al final del día, pero preferiría no tener este medio que funcione parcialmente.

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

0

Puedes probar esto:

 const allPlanFeatures: Record<ExtensivePlanHandle, string[]> = {} as Record<ExtensivePlanHandle, string[]>;

esto no es perfecto, pero a veces necesita decirle al compilador TypeScript qué es lo correcto.

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