类型“{}”上不存在属性“keys”。 const { 键 } = 数据;

问题描述 投票:0回答:1

对于以下打字稿中间件,我收到标题中提到的错误:(目标:es6,模块 commonjs)

    try {
        const response = await fetch(URL);
        if (response.status !== 200) {
            throw 'request not successful'
        }
        const data = await response.json();
        const { keys } = data;
        for (let i = 0; i < keys.length; i++) {
            const key_id = keys[i].kid;
            const modulus = keys[i].n;
            const exponent = keys[i].e;
            const key_type = keys[i].kty;
            const jwk = { kty: key_type, n: modulus, e: exponent };
            const pem = jwkToPem(jwk);
            pems[key_id] = pem;
        }
        console.log("got PEMS")
    } catch (error) {
        console.log(error)
        console.log('Error! Unable to download JWKs');
    }
}

我在哪里定义了这个全局 let pems: { [key: string]: string } = {},不确定我的问题到底在哪里,任何帮助将不胜感激

按照确切的教程进行操作,但仍然停留在这一错误消息上,可能该教程已过时,我不太确定

javascript node.js typescript
1个回答
0
投票

fetch
返回 解析为
Promise
Response
Response.json
返回 解析为
JSON
的承诺,其中不包含
keys
属性 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ JSON)。

const { keys } = data;

这是一个 解构赋值,它尝试从

keys
中解压
data
属性。此时
data
是一个
JSON
对象,并且不包含
keys
属性。

© www.soinside.com 2019 - 2024. All rights reserved.