Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

273
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!