打字稿 - "property ip doesnt exist on type response"



你好,请别人有这个打字错误,在这个取回api调用我正在获取userIp的ip。属性IP在类型response&quot上不存在,这里的代码

`
let userIp = await fetch('https://api.ipify.org?format=json');
userIp = await userIp.json();
data = await fetch(
`https://geo.ipify.org/api/v1? 
apiKey=API_KEY&ipAddress=${userIp.ip}`
`

首先:永远不要把你的私有API密钥放在Stack Overflow问题(或任何其他在线论坛)!我建议你重置你的密钥,因为现在任何人都可以使用它们。

您需要首先从JSON格式的响应中获取数据,然后才能访问其中的属性。在第一个请求中,您正确地使用了Response.json方法。然而,似乎你忘了在你的第二个,这是你的问题的原因这样做:

const userInfoRes = await fetch('https://api.ipify.org?format=json');
const userInfo = await userInfoRes.json();
const dataRes = await fetch(`https://geo.ipify.org/api/v1?apiKey=API_KEY&ipAddress=${userIp.ip}`);
const data = await dataRes.json();

我认为这是因为你声明

let userIp = await fetch('https://api.ipify.org?format=json');

userIpResponse型。

然后是userIp = await userIp.json();,因为userIp.json()返回一个Promise<any>,所以它与

相同userIp: Response = await userIp.json();

Response

中没有找到ip

键使用另一个变量修复它

let userIp = await fetch('https://api.ipify.org?format=json');
let userIpJson = await userIp.json();
//You can also put a constraint
//let userIpJson : { ip: string } = await userIp.json();
console.log(userIpJson.ip)

相关内容

  • 没有找到相关文章

最新更新