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

264
Vistas
La propiedad 'firstName' no existe en el tipo 'objeto'
function marge(obj1: object, obj2: object) { return Object.assign(obj1, obj2); } const margeObj = marge( {firstName: "John"}, {lastName : "Doe"} ); console.log(margeObj.firstName);

Typescipt arroja un error en la última línea al intentar obtener la propiedad firstName de mergeObj.

La propiedad 'firstName' no existe en el tipo 'objeto'.

Tanto obj1 como obj2 son objetos y agregar un objeto de tipo de retorno no soluciona este problema.

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

0

TypeScript no entiende qué tipo debe devolver la función de combinación. Puede especificar los argumentos con genéricos y luego fusionarlos en el tipo de retorno con el operador de intersección & :

 function marge<T extends {}, S extends {}>(obj1: T, obj2: S): T & S { return Object.assign(obj1, obj2); } const margeObj = marge({firstName: "John"}, {lastName: "Doe"}); console.log(margeObj.firstName);

El tipo devuelto será la intersección entre T y S , todas las propiedades en los argumentos del objeto estarán disponibles en el tipo de retorno.

X extends {} simplemente restringe el argumento a un objeto.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que tienes que usar una interfaz como esta.

 function marge(obj1: object, obj2: object) { return Object.assign(obj1, obj2); } interface user { firstName:string; lastName:string; } const margeObj:user = marge( {firstName: "John"}, {lastName : "Doe"} ); console.log(margeObj.firstName);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Una solución es usar la cuantificación existencial, como:

 function marge<T, U>(obj1: T, obj2: U): T & U { return Object.assign(obj1, obj2); }

Esto dice que para los parámetros obj1 y obj2 existen algunos tipos, T y U , respectivamente. La función no sabe cuáles son esos tipos, pero sí sabe que debe devolver un tipo de intersección de ellos.

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