0
给出了外部库类型的声明。我引用它的旧零件:如何用一个rest参数创建一个重载方法?
interface IRouterMatcher<T> {
(path: PathParams, ...handlers: RequestHandler[]): T;
(path: PathParams, ...handlers: RequestHandlerParams[]): T;
}
interface IRouterHandler<T> {
(...handlers: RequestHandler[]): T;
(...handlers: RequestHandlerParams[]): T;
}
interface IRouter extends RequestHandler {
// ...
use: IRouterHandler<this> & IRouterMatcher<this>;
// ...
}
基于这个声明,我需要用use()方法创建一个类。它清楚地表明您需要创建一个重载方法。 我试图做到这一点,如下所示:
export default class Router extends RequestHandler {
// ...
use(path: PathParams, ...handlers: RequestHandler[]): this
use(path: PathParams, ...handlers: RequestHandlerParams[]): this
use(...handlers: RequestHandler[]): this
use(...handlers: RequestHandlerParams[]): this {
// ...
return this;
}
// ...
}
在什么已经收到这样的错误:
error TS2394: Overload signature is not compatible with function implementation.
如何正确地创建一个使用()方法?