错误 TS2339: 类型 'Observable<HttpEvent<any> 上不存在属性 'do'
Posted
技术标签:
【中文标题】错误 TS2339: 类型 \'Observable<HttpEvent<any> 上不存在属性 \'do\'【英文标题】:error TS2339: Property 'do' does not exist on type 'Observable<HttpEvent<any>错误 TS2339: 类型 'Observable<HttpEvent<any> 上不存在属性 'do' 【发布时间】:2018-10-25 12:34:24 【问题描述】:我使用的是 angular-5.x,当我升级到 angular-6.x 及其对等依赖项(区域、rxjs 等)后。
我开始面临以下错误
src/app/xxx/apiConnection/auth.interceptor.ts(25,33) 中的错误:错误 TS2339:“Observable>”类型上不存在属性“do”。 src/app/xxx/apiConnection/auth.interceptor.ts(30,31):错误 TS2339:“Observable>”类型上不存在属性“do”。
我的代码如下:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
console.log(req)
if(!req.headers.has('skip-interceptors'))
let card = localStorage.getItem(LocalStoregeIdems.oAUTH_ACCESS_CARD)
, headers;
if (card)
headers = req.headers.set('Authorization', card);
let clone = req.clone(
withCredentials: true,
headers
);
return next.handle(clone).do(event =>
console.log(event);
);
else
req.headers.delete('skip-interceptors');
return next.handle(req).do(event =>
console.log(event);
);
【问题讨论】:
【参考方案1】:对皮埃尔的完整性。
如果您 do
想使用 tap
(双关语..),您需要先使用管道。
你的断线看起来像这样:
import tap from 'rxjs/operators';
...
return next.handle(req).pipe(tap(event =>
console.log(event);
)
);
【讨论】:
【参考方案2】:do
运算符已在 rxjs6 中重命名为 tap
运算符。
希望对你有帮助
【讨论】:
以上是关于错误 TS2339: 类型 'Observable<HttpEvent<any> 上不存在属性 'do'的主要内容,如果未能解决你的问题,请参考以下文章
错误 TS2339:类型“”上不存在属性“contenido”
TypeScript:TS2339 错误——“对象”类型上不存在属性