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

420
Visualizações
Declaraciones de tipos duplicados mecanografiados

Tengo problemas con las declaraciones de tipos de mecanografiados duplicados en el siguiente caso:

Tengo el siguiente árbol de dependencias para mi aplicación A:

 A->@angular/http:2.3.1 A->B->@angular/http:2.3.1

Tanto A como B son administrados por npm. despues de correr

 npm install

el sistema de archivos se ve así:

 A/node_modules/ @angular/http ... B/node_modules @angular/http

El problema parece ser que ahora hay dos tipos de declaraciones de tipos @angular/http como Response o Headers . Y de alguna manera, el transpilador de TypeScript parece incapaz de manejar eso, lo que da como resultado el siguiente mensaje de error:

TS2453:El argumento de tipo para el parámetro de tipo 'T' no se puede deducir del uso. Considere especificar los argumentos de tipo explícitamente. El argumento de tipo candidato 'Respuesta' no es un argumento de tipo válido porque no es un supertipo del candidato 'Respuesta'. Los tipos de 'encabezados' de propiedad son incompatibles. El tipo 'Encabezados' no se puede asignar al tipo 'Encabezados'. Los tipos tienen declaraciones separadas de una propiedad privada 'mayBeSetNormalizedName'.

Al leer el mensaje, supongo que esto es un problema de Typescript que no puede hacer coincidir las declaraciones de tipo duplicadas.

¿Alguien experimentó el mismo problema? ¿Cómo manejar ese problema? ¿Cómo manejar tales colisiones de nombres?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Mientras tanto, descubrí que puede corregir este error importando explícitamente los tipos correspondientes dentro de la clase de uso de A. En mi caso (consulte el mensaje de error anterior), necesitaba:

 import {Response, Headers} from '@angular/http';
over 4 years ago · Santiago Trujillo Relatório

0

Yo tuve el mismo problema. Básicamente hay dos formas de resolver esto.

  1. Cree un módulo UMD del proyecto B. Esto puede llevar mucho tiempo
  2. usar as any as TheRequiredObject ver más abajo.

Supongamos que tienes esta clase en el proyecto b:

 export class B{ getSome(): Observable { return this.http.get('some_url'); } }

y esto es lo que quieres en el proyecto a:

 export class A{ getSomeFromB: Observable{ return B.getSome() as any as Observable; } }
over 4 years ago · Santiago Trujillo 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