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

403
Vistas
Mecanografiado: ¿cómo devolver la "clave de objeto" dinámica que proviene del "valor de clave prop" dinámico?

Estoy tratando de generar una "clave de objeto dinámica" basada en un "valor de clave de apoyo" seleccionando un valor de clave de objeto específico.

Entonces, digamos que paso { name: 'someEntity', unrelatedKey: 123 } y me gustaría devolver { someEntity: 'ok' } . ¿Cómo se haría eso para que el valor de retorno esté definido por el tipo de mecanografiado? He intentado algo como esto pero no funciona:

 type GetExampleProps = { name: string unrelatedKey: number } type GetExampleRes<T> = { [key: T]: string } function getExample<T extends GetExampleProps> (props: T): GetExampleRes<T['name']> { return { [props.name]: 'ok' } } const example = getExample({ name: 'someEntity', unrelatedKey: 123 }) example.someEntity // should be valid type string example.hello // should be invalid, missing key
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Actualmente no puedo hacer eso sin una afirmación de tipo, pero como solución temporal aquí está:

 type GetExampleProps<T extends PropertyKey = string> = { name: T; unrelatedKey: number; }; function getExample<T extends PropertyKey>( props: GetExampleProps<T> ): { [K in T]: string; } { const toRet = { [props.name]: "a string", }; return toRet as { [K in T]: string }; } const example = getExample({ name: "someEntity", unrelatedKey: 123 }); example.someEntity; example.hello; // Property 'hello' does not exist on type '{ someEntity: string; }'
about 4 years ago · Juan Pablo Isaza Denunciar

0

Pruebe esta función, esto debería funcionar de la manera que necesita

 const createObject = (obj: any) => { interface I { [name: string]: any; } const returnObj: I = {}; returnObj[obj.name] = Object.keys(obj).filter((key) => key !== "name"); return returnObj; };
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