角度-无法读取未定义的属性

时间:2020-05-11 10:33:10

标签: angular typescript

我创建了一个接口httpOption qui contient httpParams,当我想将param设置为httpParam时,出现此错误

无法读取未定义的属性“ params”

export interface HttpOptions {
  headers?: HttpHeaders;
  params?: HttpParams;
  reportProgress?: boolean;
  withCredentials?: boolean;
}

createUsingPOST(args: { createConventionRequest: models.CreateConventionRequest }, requestHttpOptions?: HttpOptions): Observable<string> {
    requestHttpOptions.params.append('responseType', 'text');
}

1 个答案:

答案 0 :(得分:0)

requestHttpOptions是可选的,这意味着如果不在此处,则为undefined

在不使用第二个参数的情况下调用方法时,您正在尝试读取params的属性undefined,从而引发错误。

如果您希望requestHttpOptions为默认值,则必须为其提供默认值,例如:

createUsingPOST(args: { createConventionRequest: models.CreateConventionRequest }, requestHttpOptions: HttpOptions = {}): Observable<string> {

但是,它不能完全解决问题,因为您会得到Cannot read property "append" of undefined

因此,您必须确定在不提供第二个参数时想要做什么。