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

289
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

0

Esto funcionó para mí:

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

over 4 years ago · Santiago Trujillo Denunciar

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 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