mapオペレータがimportできない
Angularのプロジェクトでmapオペレータをimportしているにもかかわらず、下記のエラーが表示されます。
error TS2552: Cannot find name 'map'. Did you mean 'Map'?
ソースコードは以下の通りです。
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';//mapオペレータのimport
import { SessionService } from '../service/session.service';
@Injectable({
providedIn: 'root'
})
export class AuthGuard implements CanActivate {
constructor(private session: SessionService,
private router: Router) {
}
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return this.session
.checkLoginState()//SessionのObservableを返す
.pipe(
map(session => {
// ログインしていない場合はログイン画面に遷移
if (!session.login) {
this.router.navigate(['']);
}
return session.login;
})
)
}