TypeScript和Node https.get()

时间:2019-01-30 10:01:00

标签: node.js typescript

我开始将项目转换为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时,它只是告诉我有什么方法和道具,但是使用TS我什么也没得到。当我到达resp.on('')时,它告诉我on上不存在Object。这是预期的还是我做错了什么?我需要为interface函数编写一个https.get吗?

我正在使用Visual Studio代码

是因为我使用的模块不打算与TS一起使用?我想可能就是那样。

1 个答案:

答案 0 :(得分:1)

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

$ nvcc -arch=sm_62 -std=c++11 -I ./ main.cu -o main
$ cuobjdump ./main

Fatbin elf code:
================
arch = sm_62
code version = [1,7]
producer = <unknown>
host = linux
compile_size = 64bit

Fatbin elf code:
================
arch = sm_62
code version = [1,7]
producer = cuda
host = linux
compile_size = 64bit

Fatbin ptx code:
================
arch = sm_62
code version = [5,0]
producer = cuda
host = linux
compile_size = 64bit
compressed

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

type ResponseType = { data: any };

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

对象类型非常灵活,如果您使用响应类型中不存在的属性,则不会显示。所以除非没有其他选择,否则我不会使用它