[英]Angular 4 - argument of type string[] is not assignable to type parameter of type 'string'
[英]Argument of type '{}' is not assignable to parameter of type in Angular 8
我有一個處理錯誤的方法:
private handleError<T>(operation = 'operation', result?: T) {
return (error: any): Observable<T> => {
console.error(error);
this.log(`${operation} failed: ${error.message}`);
return of(result as T);
};
}
private log(message: string) {
console.log(message);
}
我想在我的方法中使用它:
getMyStructure(): Observable<HttpResponse<StructureResponse>> {
return this.http.get< StructureResponse >(
localUrl).pipe(retry(3), catchError(this.handleError<StructureResponse>('getMyStructure', {})));
}
但最后一個{}
向我拋出了一個錯誤。 StructureResponse
是一個帶有一些字段的接口。 根據我的理解,我應該在那里放置一些(空的?) StructureResponse
對象,但我不再確定。 你能幫我解決這個問題嗎?
這是結構響應:
interface SomeStructure {
content: MyStructure[];
page: number;
size: number;
totalElements: number;
totalPages: number;
last: boolean
}
添加 ? 到每個屬性。
interface SomeStructure {
content?: MyStructure[];
page?: number;
size?: number;
totalElements?: number;
totalPages?: number;
last?: boolean
}
使用Observable<StructureResponse>
代替Observable<HttpResponse<StructureResponse>>
如下。
getMyStructure(): Observable<StructureResponse> {
return this.http.get< StructureResponse >(
localUrl).pipe(retry(3), catchError(this.handleError<StructureResponse>('getMyStructure', {})));
}
如果您傳遞一個空對象,那么它分配給接口的唯一方法是接口中的屬性都是可選的(帶有?),否則您至少需要在對象中使用 null 或其他方式顯示您的屬性價值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.