我正在使用具有方法loadUserInfo(): KeycloakPromise<{}, void>
的库。我使用`this.getKeycloakInstance()。loadUserInfo()。success(data =&gt; {
this.user.id =(data).sub;
我使用调试器检查了这个data
对象是否有我要分配给this.user.id
的字段sub我不能这样做因为我收到编译错误:TS2339: Property 'sub' does not exist on type '{}'.
我无法更改方法loadUserInfo()的返回类型,因为它是我必须使用的外部库。我可以以某种方式获得此sub
属性而不会出错吗?
答案 0 :(得分:3)
您可以使用variable['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