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

288
Visualizações
El tipo '() => Observable<any>' no se puede asignar al tipo '() => Observable<any>'

Estoy creando una aplicación ionic 2 usando mecanografiado y después de actualizar la instalación de mecanografiado local a la versión 2.2.1 desde la versión 2.1.0 , comencé a recibir este error:

El tipo '() => Observable' no se puede asignar al tipo '() => Observable'. Existen dos tipos diferentes con este nombre, pero no están relacionados. El tipo 'Observable' no se puede asignar al tipo 'Observable'. Existen dos tipos diferentes con este nombre, pero no están relacionados.

Este error se repite para cada una de las siguientes líneas

 L28: this.onDisconnect = Network.onDisconnect L29: this.onchange = Network.onchange L30: this.ontypechange = Network.ontypechange

Network es una clase importada de ionic-native , sus onDisconnect , onchange y ontypechange se definen de la siguiente manera:

 static onDisconnect(): Observable<any>; static onchange(): Observable<any>; static ontypechange(): Observable<any>;

Tengo onDisconnect , onchange y ontypechange como propiedades public de una clase personalizada ( clase @Injectable() ) llamada "Network" y las he definido de la siguiente manera:

 L15: public onDisconnect: ()=>Observable<any> L16: public ontypechange: ()=>Observable<any> L17: public onchange: ()=>Observable<any>

tengo tres preguntas?

Primero: ¿Alguien me ayudaría a entender qué significa realmente el error en TypeScript y por qué ocurre como tal en mi código?

Segundo: Si bien sé que podría extender la clase, no quiero hacerlo. Entonces pregunto, ¿la diferencia en declarar mis métodos como public mientras que los de la clase son static causa este problema?

Tercero: ¿cuál es la diferencia entre estos dos tipos de definición de una propiedad en una clase?

EDITAR:

Me acabo de dar cuenta de que anteriormente había intentado extender la clase Network y esto falló debido a la declaración estática

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

0

Tiene dos versiones diferentes de rxjs al acecho en su árbol node_modules , y TS no sabe que son "iguales".

Lo primero que debe intentar sería borrar todo el directorio node_modules , vaciar la caché de npm y rehacer npm install .

Si eso no resuelve el problema, es probable que el problema subyacente sea que diferentes dependencias han especificado versiones de rxjs que son incompatibles, lo que obliga a npm a traer una versión separada de rxjs para uno o más de ellos (que colocará en node_modules directorio bajo algún módulo). Verá una estructura como

 node_modules dependencyA rxjs dependencyB node_modules rxjs

Si esto es lo que está sucediendo, entonces no tendrá más opción que rastrear el requisito de la versión infractora. Por ejemplo, el package.json de nivel superior.json puede tener rxjs: "^5.2.0" , mientras que dependencyB/package.json puede tener rxjs: "5.0.0" .

over 4 years ago · Santiago Trujillo Relatório

0

Esto funcionó para mí:

Cambiando la import { Observable } de rxjs/observable a la import { Observable } de rxjs ;

over 4 years ago · Santiago Trujillo Relatório

0

Estaba recibiendo un error similar como resultado de la incompatibilidad entre RxJS y Ngrx v7 en una versión determinada. La degradación de RxJS a ~ 6.4.0 ayudó. yarn add rxjs@~6.4.0 funcionó para mí y se resolvió el error.

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