将 curl 转换为 TypeScript
curl2code 使用 fetch API 将 curl 命令转换为带有正确类型注释的 TypeScript 代码。转换过程通过 WebAssembly 在您的浏览器中运行——您的数据永远不会离开您的设备。对于纯 JavaScript,请查看我们的 curl 转 JavaScript 转换器。对于服务器端代码,请参阅 curl 转 Node.js。下方是常见场景的类型化示例。
如何从浏览器复制 curl
- 1
打开开发者工具
按 F12 或 Ctrl+Shift+I 打开浏览器开发者工具。
- 2
进入 Network 标签页
点击 Network (网络) 标签页,并执行触发 HTTP 请求的操作。
- 3
复制为 cURL
右键点击请求 → Copy (复制) → Copy as cURL (复制为 cURL)。然后将其粘贴到上方。
常见问题解答
curl2code 为 TypeScript 生成什么?
curl2code 使用带有完整类型注释的浏览器原生 fetch API 生成 TypeScript 代码。生成的代码包括类型化的请求选项、正确的 Response 处理以及类型安全的 JSON 解析。TypeScript 为纯 JavaScript 中使用的相同 Fetch API 增加了编译时安全性。
TypeScript fetch vs JavaScript fetch —— 有什么区别?
运行时 API 是完全相同的——TypeScript 增加了静态类型检查。你会获得类型化的 Headers、RequestInit 和 Response 对象。对于自定义响应结构,定义一个接口并使用 await response.json() as MyType 进行转换。对于服务端 TypeScript,请查看我们的 curl 转 Node.js 转换器。
如何在 TypeScript 中处理身份验证?
与 Fetch 相同——在类型化的 Authorization 对象中传递 HeadersInit 请求头。如果使用类型化的 headers 辅助函数,TypeScript 能确保你不会拼错 header 名称。curl2code 会根据 -u 和 -H 'Authorization: ...' curl 标志生成正确类型化的认证头。
如何使用 TypeScript 发送表单数据?
使用浏览器的 FormData API —— TypeScript 拥有其内置的类型定义。使用类型化参数调用 formData.append('file', file)。编译器会在构建时捕获类型不匹配。curl2code 会将 -F 标志转换为正确类型化的 FormData 调用。
如何在 TypeScript 中以类型安全的方式处理错误?
使用带有 try/catch 的 async/await。将 catch 子句的错误类型标注为 unknown 并使用 instanceof 进行收窄。在解析前检查 response.ok。为 API 特定的错误格式定义带有接口的类型化错误响应。这能为你提供编译时保证,确保所有错误路径都得到了处理。
如何在 TypeScript 中定义 API 响应类型?
为预期的响应结构定义一个接口,然后使用 const data: MyAPI = await response.json()。如需在运行时进行验证,请配合 zod 或 io-ts 使用。这种模式可确保整个代码库的类型安全。关于其他语言中类似的类型化体验,请参阅 curl 转 Go 或 curl 转 Rust。
如何在 TypeScript 中为 fetch 设置超时?
使用 AbortController —— TypeScript 包含 Abort API 的完整类型定义。创建 const controller = new AbortController(),将 signal 传递给 fetch,并使用 setTimeout 中止。在现代 TypeScript lib 目标中,AbortSignal.timeout(ms) 简写也是类型化的。
如何使用 TypeScript 处理 CORS?
CORS 处理与 JavaScript 完全相同——它是一个浏览器安全特性,而非 TypeScript 特性。根据需要设置 mode: 'cors' 和 credentials: 'include',TypeScript 会确保 RequestMode 和 RequestCredentials 枚举值正确。对于不适用 CORS 的服务端请求,请参阅 curl 转 Node.js。
如何在 TypeScript 中发送带有 JSON 正文的 POST 请求?
使用 curl2code 将类似于 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 命令转换为 TypeScript。生成的代码使用 const response: Response = await fetch(url, { method: 'POST', body: JSON.stringify(data) })。curl2code 会自动检测带有 JSON 内容的 -d/--data 标志,并在 fetch 代码中设置相应的 Content-Type 请求头。
如何在 TypeScript 中添加 Bearer 令牌授权?
将 curl -H "Authorization: Bearer YOUR_TOKEN" URL 传递给 curl2code,它会生成带有认证请求头的 fetch 代码:headers: { Authorization: `Bearer ${token}` }。curl2code 会从 -H "Authorization: Bearer ..." 和 --oauth2-bearer 标志中检测 Bearer 令牌。对于 Basic auth,请使用 -u user:pass。
如何在 TypeScript 中设置 Content-Type 请求头?
curl2code 将 curl -H "Content-Type: application/json" URL 转换为带有正确请求头的 fetch 代码:headers: { 'Content-Type': 'application/json' } as HeadersInit。对于 -d 数据,curl 默认使用 application/x-www-form-urlencoded;对于 -F 表单上传,它使用 multipart/form-data。curl2code 会将每一项映射到正确的 fetch API。