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

161
Vistas
Obtenga valor del objeto de contenido desconocido por clave en mecanografiado

Estoy escribiendo una función que devolverá un valor único del objeto por clave o devolverá un objeto vacío si la clave no existe.

Código:

 //example data: const obj = { data: {test: 'word'}, str: 'Hi', num: 22, } const pickOne = <T extends object>(obj: T, key: keyof typeof obj) => ((key in obj) ? obj.key : {}) console.log(pickOne(obj, 'data')) //should print {test: 'word'}

Mi problema es que recibo este error: Property 'key' does not exist on type 'T' . Soy nuevo en mecanografiar, pero después de leer documentos, estaba seguro de que keyof typeof permitiría cualquier clave en obj .

Cualquier ayuda será apreciada, gracias.

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

0

Tu obj tiene 3 claves:

  • data
  • str
  • num

Cuando escribes obj.key le estás diciendo al intérprete que busque una clave llamada key , que no existe.

Por otro lado puedes acceder a estas teclas por su nombre usando corchetes:

  • const key = "data"
  • obj[key] // Should return {test: 'word'} , que es equivalente a:
  • obj["data"] // Should return {test: 'word'}

Moraleja de la historia:

  1. La notación de puntos es para acceder a claves existentes en un objeto dado
    • Si la clave existe, funciona. De lo contrario, sale un error
  2. TypreScript también permite acceder a estas claves por su nombre
    • Si la clave existe, funciona. De lo contrario, no da error pero devuelve undefined

Ejemplo de trabajo:

 const obj = { data: {test: 'word'}, str: 'Hi', num: 22, } const key = "data" console.log(obj[key]) console.log(obj["data"]) console.log(obj["key"])
about 4 years ago · Juan Pablo Isaza Denunciar

0

Este:

 obj.key

obtiene la propiedad denominada "key" en obj , que puede no existir.

Donde esto:

 obj[key]

Obtiene el nombre de la propiedad en la key de variable .

Que funciona sin error de tipo: Ver patio de recreo

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