Une déclaration des types de bibliothèques externes est donnée. Je cite des parties utilisées de lui:Comment créer une méthode de surcharge avec un paramètre de repos?
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>;
// ...
}
Basé sur cette déclaration, j'ai besoin de créer une classe avec la méthode use(). Il montre clairement que vous devez créer une méthode de surcharge. J'ai essayé de le faire comme suit:
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;
}
// ...
}
ce qui a reçu une telle erreur:
error TS2394: Overload signature is not compatible with function implementation.
Comment puis-je créer correctement une méthode d'utilisation()?