Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

267
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda