【发布时间】:2022-10-18 22:19:56
【问题描述】:
在控制台中,当运行 node --experimental-fetch 时,fetch 命令现在本机启用(节点版本 >=17.6)。见下文
但是,当我添加一个打字稿层时,我总是得到error TS2304: Cannot find name 'fetch'。
我该如何解决这个问题?
背景思路:原生使用fetch,摆脱node-fetch和@types/node-fetch依赖
tsconfig.json 和一般设置:https://github.com/nexys-system/server-boilerplate/blob/master/tsconfig.json
也可以看看:
【问题讨论】:
-
鉴于它是实验性的,它可能还没有出现在
@types/node中。 -
我可以在
@types/node中创建 PR 吗?还有其他方法可以破解它吗?即在全球范围内定义fetch? -
1. 是的,您可以在定义这些类型的DefinitelyTyped 存储库上创建一个PR。 2. 是的,您还可以声明其他全局类型,参见例如stackoverflow.com/a/43523944/3001761。
-
作为一种变通的解决方法,您可以使用
"dom"扩展tsconfig.json中的lib部分。这包括fetch的类型,但也包括许多其他仅在浏览器中可用的内置插件,所以要小心。 -
嘿,我仍然有这个问题。我使用最新的
@types/node(18.7.18) 在节点 18.9.0 上,它仍然给我“找不到名称 'fetch'”错误。我在我的 tsconfig 文件中定位 es2022 并包括节点类型。有趣的是,通过 @types/node 包快速搜索显示没有定义 fetch ......我错过了什么吗?