TypeScript和Node https.get()

xvw2m8pv  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(107)

我开始将一个项目转换为TypeScript,我遇到了一个错误,我不知道如何解决。
当我写:

https.get(`someUrl`, resp => {
  // Define Buffer
  let buffer = '';
  // Fill buffer
  resp.on('')
});

它给了我

[ts] Parameter 'resp' implicitly has an 'any' type. [7006]

我知道我可以通过改变

https.get(`someUrl`, resp => {

https.get(`someUrl`, (resp: Object) => {

这是正确的解决方案吗?此外,TS不知道resp实际上包含什么。当我写普通的JS时,它只是告诉我有什么方法和 prop ,但对于TS,我什么也得不到。当我到达resp.on('')时,它告诉我Object上不存在on。这是预期的还是我做错了什么?我需要为https.get函数写一个interface吗?
使用Visual Studio Code
是不是因为我使用的模块不打算与TS一起使用?我想可能就是这样。

wz8daaqr

wz8daaqr1#

它基于https.get回调函数的参数类型。通常它需要在resp类型或函数类型上定义,所以假设您创建了一个类型T,您希望从请求中获取该类型

type ResponseType = { data: any };

然后你可以像这样添加到函数调用中

https.get<ResponseType>(...);

https.get(`someUrl`, (resp: ResponseType) => {...}

对象类型非常灵活,如果您使用了响应类型上不存在的属性,它将不会显示。所以除非别无选择,我不会用那个。

相关问题