【发布时间】:2018-09-25 04:18:11
【问题描述】:
我想创建一个函数,将基于 Promise 的函数(在我的示例中从 mongodb 节点客户端)转换为 Observable。
代码很简单
export function updateOneObs(filter: Object, object: Object, collection: Collection<any>) {
return Observable.fromPromise(collection.updateOne(filter, object));
}
如果我把它放在 VSCode 中,我会收到一条错误消息,上面写着
“导出函数的返回类型已经或正在使用来自外部模块“.../npm-packages/observable-mongo/node_modules/@types/mongodb/index”的名称“UpdateWriteOpResult”,但无法命名。 "
要解决这个问题,我需要通过显式导入缺少的类型
import {UpdateWriteOpResult} from 'mongodb';
考虑到错误消息清楚地表明 Typescript 知道在哪里寻找丢失的类型,有没有办法通过推理解决而不显式导入?
在我的情况下,导入有一个额外的小缺点:因为我已经使用 "noUnusedLocals": true 设置了 Typescript 编译器,一旦我导入缺少的类型,如果我想避免另一个错误,我必须在某处使用它。
【问题讨论】: