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.
如何正確地創建一個使用()方法?