- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我使用 Mongoose 的类型:
post<T extends Document>(method: string, fn: (
error: mongodb.MongoError, doc: T, next: (err?: NativeError) => void
) => void): this;
post<T extends Document>(method: string, fn: (
doc: T, next: (err?: NativeError) => void
) => void): this;
在我的代码中:
function (schema: Schema) {
schema.post('remove', function (doc, next) { });
}
总是选择第一个post
定义,doc
会是mongodb.MongoError
,next
会是T
.
我错过了什么吗? 以及如何让它选择第二个 post
define?
最佳答案
TypeScript 始终选择与指定参数匹配的第一个 重载。因为函数参数可能会被被调用者忽略,这意味着接受较高数量回调的函数应该在较低数量回调之后。
第二个重载更具体(它可以处理比前一个重载更低总数量的函数),因此在这种情况下,第二个重载应该列在第一个重载之上。
TL;DR:.d.ts 文件有一个错误,应该交换这两行 post
。
关于Typescript 没有选择正确的重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41155815/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!