外部ライブラリタイプの宣言があります。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.
はどのように正しく使用()メソッドを作成するのですか?あなたは残りのパラメーターを使用すると