【发布时间】:2019-05-04 22:21:36
【问题描述】:
我正在尝试向 CommonJS 模块添加依赖注入,以便在测试时轻松模拟 HTTP 调用。
有效的旧代码(Flow 知道 http 的类型):
const myModule = require('./my-module.js');
// my-module.js
const http = require('http');
module.exports = {
doSomething: () => http.get(...);
};
新代码,不起作用:
const myModule = require('./my-module.js')({http: require('http')});
// my-module.js
module.exports = ({ http }) => ({
doSomething: () => http.get(...);
});
我收到错误消息“缺少用于解构的类型注释”。而且我不知道要使用什么类型的注释。
我尝试用各种东西注释 http 属性并查看会发生什么,但无济于事,例如:
type ModuleOptions = $ReadOnly<{
http: typeof require('http'),
}>;
module.exports = ({ http }: ModuleOptions) => ({
有什么想法吗?
【问题讨论】:
标签: javascript node.js flowtype