我想创建一个函数来转换基于承诺的函数,在我的示例中
mongodb节点客户端
,变成可观察的。
代码非常简单
export function updateOneObs(filter: Object, object: Object, collection: Collection<any>) {
return Observable.fromPromise(collection.updateOne(filter, object));
}
如果我把它放在VSCode中,我会收到一条错误消息,上面写着
“导出函数的返回类型具有或正在使用外部模块中的名称‘UpdateWriteoPreult’”/npm包/可观察的mongo/node\u模块/@类型/mongodb/索引“但无法命名”
为了解决这个问题,我需要通过
import {UpdateWriteOpResult} from 'mongodb';
考虑到错误消息清楚地表明Typescript知道在哪里查找丢失的类型,有没有一种方法可以在不显式导入的情况下通过推理解决问题?
在我的例子中,导入还有一个小缺点:因为我已经用
"noUnusedLocals": true
,一旦导入丢失的类型,如果我想避免另一个错误,就必须在某处使用它。