我有以下界面:
type HasuraClaim = {
'x-hasura-default-role': string;
'x-hasura-user-id': string;
'x-hasura-allowed-roles': string[];
};
export interface IdToken {
family_name: string;
given_name: string;
name: string;
'https://hasura.io/jwt/claims': HasuraClaim;
sub: string;
<...more here...>
}
当我按如下方式访问它时:
const role = idToken['https://hasura.io/jwt/claims']['x-hasura-default-role']
我收到以下错误,并在['x-hasura-default-role']
下划线:
TS7015:元素隐式地具有“ any”类型,因为索引表达式的类型不是“ number”。
如何更改输入内容,以使打字稿不会发出警告?我还没有使用嵌套的字符串键找到类似的问题。
编辑:我发现我可以做到以下几点而不会出现问题:
const claims = idToken['https://hasura.io/jwt/claims'];
const role = claims['x-hasura-default-role'];
答案 0 :(得分:0)
问题似乎出在您的声明上。您需要将idToken
推断为IdToken
。
const idToken: IdToken = { ... }