Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 从{}对象获取属性_Angular_Typescript - Fatal编程技术网

Angular 从{}对象获取属性

Angular 从{}对象获取属性,angular,typescript,Angular,Typescript,我使用的库有一个方法loadUserInfo():keydepose。我使用'this.getKeyCoveInstance().loadUserInfo().success(数据=>{ this.user.id=(data).sub 我使用调试器检查了此数据对象是否有要分配给this.user.id的字段sub,因为我遇到编译错误:TS2339:类型{}上不存在属性“sub”。 我无法更改loadUserInfo()方法的返回类型,因为它是我必须使用的外部库。我能否以某种方式无误地获取此sub

我使用的库有一个方法
loadUserInfo():keydepose
。我使用'this.getKeyCoveInstance().loadUserInfo().success(数据=>{ this.user.id=(data).sub

我使用调试器检查了此
数据
对象是否有要分配给
this.user.id
的字段sub,因为我遇到编译错误:
TS2339:类型{}上不存在属性“sub”。


我无法更改loadUserInfo()方法的返回类型,因为它是我必须使用的外部库。我能否以某种方式无误地获取此
sub
属性?

您可以使用
变量['sub']
,或者将变量键入
任意

this.getKeycloakInstance()
  .loadUserInfo()
  .success(data => this.user.id = data.sub); // error

this.getKeycloakInstance()
  .loadUserInfo()
  .success(data => this.user.id = data['sub']); // no error

this.getKeycloakInstance()
  .loadUserInfo()
  .success(data => this.user.id = (data as any).sub); // no error

this.getKeycloakInstance()
  .loadUserInfo()
  .success((data: any) => this.user.id = data.sub); // no error

您可以使用
变量['sub']
,或者将变量键入
any

this.getKeycloakInstance()
  .loadUserInfo()
  .success(data => this.user.id = data.sub); // error

this.getKeycloakInstance()
  .loadUserInfo()
  .success(data => this.user.id = data['sub']); // no error

this.getKeycloakInstance()
  .loadUserInfo()
  .success(data => this.user.id = (data as any).sub); // no error

this.getKeycloakInstance()
  .loadUserInfo()
  .success((data: any) => this.user.id = data.sub); // no error

选择第四个选项-对我来说似乎是最优雅的。这就是为什么我把它们放在首位;)选择第四个选项-对我来说似乎是最优雅的。这就是为什么我把它们放在首位;)