typescript 在节点(安全帽)类型脚本项目中使用类型脚本获取?

x4shl7ld  于 2023-01-21  发布在  TypeScript
关注(0)|答案(1)|浏览(89)

在我用VSCode编写的安全帽项目的一个测试中,我想检索NFT的元数据对象,该对象存储在提供的URL中。
我以为我必须导入fs来读取URL,但我正在键入方法,我武断地决定使用一个名为fetch的方法,以便使用一些包(如angular的“HTTP”)来执行获取。
但我感到惊讶的是,没有报告任何错误的关键字'fetch'似乎fetch关键字是以某种方式定义的。
想知道它是从哪里来的,右键单击将我带到了一个名为lib.dom.ts的文件,显然是typescript节点模块的一部分。
问题是,它实际上并不工作,即使它编译。
当我的函数,包括这些行,

let uri = await nft.tokenURI(tokenId);
let response = await fetch(uri);
let json = await response.json();

使用hardhat测试运行时,我没有得到编译错误,而是得到运行时错误-
ReferenceError: fetch is not defined
有没有一种方法可以在没有运行在浏览器中的typescript项目中正确使用fetch,而不必导入一些HTTP包?

jaxagkaj

jaxagkaj1#

您可能使用了过时版本的node.js
fetch仅在v17.5以上版本中可用。

相关问题