如何检查angular2中的响应对象中是否存在键?

How to check if a key exists in a response object in angular2?

我在通过 angular2 提交数据后从服务器获取数据。这是我的 submitPost 代码:-

submitPost()
{        
      this._adminLogin.postAdminLogin(this.adminLoginmodel).subscribe(
          data => {
                this.responseStatus = data;
                if(this.responseStatus.status == 1)
                {
                  this.router.navigate(['admin/dashboard'])
                }
                else
                {
                  alert('Login Error');
                }
              },
          err => {
                console.log(err)
              },
          () => {}
      ); 
      this.status = true;       
}

这是我得到的响应结构:-

For Error: {"status":0,"message":"An error occured while logging in","error":""}
For Success: {"status":1,"message":"Login Success","error":""}

但是,这个 LoC 引起了一些麻烦:-

if(this.responseStatus.status == 1)

从命令行按 ng serve --host 到 运行 项目时,编译失败。这是我收到的消息:-

我该如何解决这个问题?

您可以创建 any 类型的 data 对象或为 data 设置适当的类型。设置 any 只会关闭编译器检查它。

.subscribe((data: any) => 

.subscribe((data: MyResponse) => 

其中 MyResponse 类似于

interface MyResponse {
   status: number;
   message: string;
}