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

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

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 Report

0

Esto funcionó para mí:

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

over 4 years ago · Santiago Trujillo Report

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