0
我试图为微库和它的main exported function添加类型。我创建了这样一个libdef吧:为导出函数的commonjs模块添加libdef
流类型/ micro.js
// @flow
import type { Server, IncomingMessage, ServerResponse } from "http"
declare module "micro" {
declare module.exports: {
(): (fn: (req: IncomingMessage, res: ServerResponse) => void) => Server,
}
}
我试图使用的主要功能与此代码片段:
SRC/index.js
// @flow
const micro = require("micro")
const server = micro((req, res) => {
res.end("Hello world!")
})
server.listen(5000)
在该代码片断中的变量server
,req
和res
都被输入为any
,即使micro
变量似乎从libdef中选取某种类型。这可以在流创建的coverage report中看到。我尝试了几种不同的方式来定义函数,但似乎没有任何工作。没有发现语法错误,并且似乎找到了libdef。我究竟做错了什么?
这也有可能是类型进口不工作(我并没有想你的例)。尽管如此。 –
看来我有两个问题。第一种是可调用对象的错误语法。这通过将'()'更改为'$ call'来解决。我想保留导出为可调用对象,因为微导出其他值。第二个问题是类型导入不起作用。 'http'模块类型应该内置于流程中,所以我不知道为什么它们不起作用。表达式绑定像那样导入'Server'类型。 – Hilzu
不幸的是,我不知道你的其他问题的答案。可能值得将它作为单独的问题发布。 –