财产'过滤器'在类型'可观察<地理位置>'.谷歌地图



我有一个出租车预订应用程序,它使用Ionic Geolocation和Firebase Firestore。我的代码不适用于firestore包,所以我不得不将rxjs更新到版本6。它带来了错误

'Property 'filter' does not exist on type 'Observable<Geoposition>'. '

这是我的代码

import { filter } from 'rxjs/operators';

const subscription = this.geo.watchPosition()
.filter((p) => p.coords !== undefined) //Filter Out Errors
.subscribe(position => {
let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
this.map.setCenter(latLng);
this.lat = position.coords.latitude;
this.long = position.coords.longitude;
console.log(this.long + ' ' + this.lat);
});

我的package.json文件

"@ionic-native/core": "~4.15.0",
"@ionic-native/geolocation": "^4.17.0",
"@ionic-native/splash-screen": "~4.15.0",
"@ionic-native/status-bar": "~4.15.0",
"@ionic/storage": "2.2.0",
"angularfire2": "^5.1.0",
"cordova-plugin-geolocation": "^4.0.1",
"firebase": "^5.5.7",
"ionic-angular": "3.9.2",
"ionic-native": "^2.9.0",
"ionicons": "3.0.0",
"rxjs": "^6.3.3",
"rxjs-compat": "^6.3.3",

我的代码出了什么问题?

感谢@JB Nizet和@martin的贡献。我只记得在最新版本的rxJs中,当链接过滤器和映射等txjs运算符时,必须使用.pipe运算符。这是我更新的代码

const subscription = this.geo.watchPosition()
.pipe(filter((p) => p.coords !== undefined)) //Filter Out Errors
.subscribe(position => {
let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
this.map.setCenter(latLng);
this.lat = position.coords.latitude;
this.long = position.coords.longitude;
console.log(this.long + ' ' + this.lat);
});

最新更新