Angular 为什么此代码中存在类型转换错误?
我不明白为什么这行Angular 为什么此代码中存在类型转换错误?,angular,typescript,rxjs,Angular,Typescript,Rxjs,我不明白为什么这行this.claim=claim出现错误“无法将类型“A”转换为类型“Claim”。我需要返回一个observable,因为这个函数是在解析器中调用的。我实际上不需要返回声明本身,我只需要在ClaimStoreService上设置属性,但我不知道如何返回空的或无效的可观察值 export class ClaimStoreService { constructor(private readonly claimService: ClaimService) { }
this.claim=claim代码>出现错误“无法将类型“A”转换为类型“Claim”。我需要返回一个observable,因为这个函数是在解析器中调用的。我实际上不需要返回声明本身,我只需要在ClaimStoreService上设置属性,但我不知道如何返回空的或无效的可观察值
export class ClaimStoreService {
constructor(private readonly claimService: ClaimService) { }
claim: Claim;
getClaim(guid: string): Observable<Claim> {
return this.claimService.get(guid).pipe(
take(1),
mergeMap(claim => {
// Cannot convert type 'A' to type 'Claim'
this.claim = claim;
return of(claim);
}));
}
}
导出类ClaimStoreService{
构造函数(私有只读claimService:claimService){}
索赔:索赔;
getClaim(guid:string):可观察{
返回此.claimService.get(guid).pipe(
以(1)为例,
合并映射(声明=>{
//无法将类型“A”转换为类型“Claim”
这个索赔=索赔;
归还(索赔);
}));
}
}
索赔:索赔;
getClaim(guid:string):可观察{
返回此.claimService.get(guid).pipe(
以(1)为例,
//在这里输入将解决您的问题
合并映射((声明:声明)=>{
这个索赔=索赔;
归还(索赔);
}));
}
我想如果你使用这个.claimService.get(guid)
你不必在mergeMap中键入claim
(claim=>
我讨厌这样的错误,我也讨厌使用任何。但是,你试过使用mergeMap((claim:any)=>
或mergeMap((claim:claim)=>
或返回此.claimService.get(guid)
?谢谢!我没有想到这一点,因为我在返回(索赔)
时没有收到类型错误。我在悬停时也看到了正确的类型,但这可能是重新剪切。我会尽快接受。
claim: Claim;
getClaim(guid: string): Observable<Claim> {
return this.claimService.get(guid).pipe(
take(1),
// give type here will solve your issue
mergeMap((claim:Claim) => {
this.claim = claim;
return of(claim);
}));
}