Saltar al contenido

Angular 6: la propiedad ‘de’ no existe en el tipo ‘typeof Observable’

Luego de investigar con especialistas en esta materia, programadores de deferentes ramas y maestros hemos dado con la respuesta al problema y la plasmamos en este post.

Solución:

Desde RxJS 6 la forma correcta y recomendada de usar of() (RxJS 5 en Observable.of()) Es esto:

import  of  from 'rxjs';

pienso esto import of from 'rxjs/observable/of'; funcionará solo mientras tengas rxjs-compat paquete instalado.

Hay algunas actualizaciones en rxjs: (Es rxjs6)

import  of  from 'rxjs';

Funcionará solo cuando su aplicación tenga rxjs-compat paquete instalado

Puedes importar of de rxjs:

import Observable,of from 'rxjs';

Y simplemente regresa of()

 return of(
      lbl_select: 'Select',
    );

Entonces tu código será:

import  Injectable  from '@angular/core';
import  TranslateLoader  from '@ngx-translate/core';
import  Observable, of  from 'rxjs';


@Injectable()
export class MiTranslateLoaderService implements TranslateLoader 

  getTranslation(lang: string): Observable 
    return of(
      lbl_select: 'Select',
    );
  

Esto es trabajo para mí.

CLI angular 6.0.8

RxJS 6.2.2

import of from 'rxjs/index';


this.dataService.currentData

    .pipe(takeUntil(this.destroy$))
    .pipe(switchMap((myData:MyDataType) =>
      of(this.anotherService.get(myData._id))))
    .pipe(map((response) => 
         if(response instanceof Error) 
            console.log('error:');
            console.dir(response);
         
         return response;
    ))
    .subscribe((data:any) => 
       doStuff(data);
      ,
      response => 
        console.log('response error');
        console.log(response)
      ,
      () => 
        console.log('response complete.');


      );

valoraciones y comentarios

Acuérdate de que tienes la capacidad de interpretar si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *