J'utilise Angular 6 Using "rxjs": "^ 6.0.0",
ERREUR: La propriété 'de' n'existe pas sur le type 'typeof Observable'.
import { Injectable } from '@angular/core';
import { TranslateLoader } from '@ngx-translate/core';
import { Observable, Subject, pipe, of } from 'rxjs';
@Injectable()
export class MiTranslateLoaderService implements TranslateLoader {
getTranslation(lang: string): Observable<any> {
return Observable.of({
lbl_select: 'Select',
});
}
}
Depuis RxJS 6, la manière correcte et recommandée d’utiliser of()
(RxJS 5 dans Observable.of()
) est la suivante:
import { of } from 'rxjs';
Je pense que ce import { of } from 'rxjs/observable/of';
ne fonctionnera que tant que le paquetage rxjs-compat
sera installé.
Il y a des mises à jour dans rxjs: (Its rxjs6)
import { of } from 'rxjs';
Cela fonctionnera uniquement sirxjs-compat
package est installé sur votre application.
Vous pouvez importer of
à partir de rxjs
:
import { Observable,of } from 'rxjs';
Et retourne simplementof()
return of({
lbl_select: 'Select',
});
Donc, votre code sera:
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<any> {
return of({
lbl_select: 'Select',
});
}
}
Cela fonctionne pour moi.
CLI angulaire 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.');
});
Vous devez importer of
à partir de rxjs/observable/of
import { of } from "rxjs/observable/of";
Usage:
return of({
lbl_select: 'Select',
});
Mise à jour: pour rxjs version 6 sans rxjs-compat, vous devez importer of
à partir de rxjs
lui-même comme mentionné par @martin.
import { of } from 'rxjs';
La solution est de retourner de (..) directement:
getTranslation(lang: string): Observable<any> {
return of({
lbl_select: 'Select',
});
Avec la sortie de la version 6, RxJS a changé sa structure interne de paquet
https://www.academind.com/learn/javascript/rxjs-6-what-changed/#import-statement-update-path
import 'rxjs/add/observable/of';
// or
import { of } from 'rxjs/observable/of';