Я хочу определить интерфейс с перегрузками функций и реализовать его.Как реализовать интерфейс TypeScript для функции?
Я могу это сделать:
export interface ServerRoutHandler
{
(opts: any, handlers: RequestHandler);
(opts: any, handlers: RequestHandler[]);
(opts: any, ...handlers: RequestHandler[]);
(opts: any, handlers: RequestCtxHandler);
(opts: any, handlers: RequestCtxHandler[]);
(opts: any, ...handlers: RequestCtxHandler[]);
}
, а затем этот
get:ServerRoutHandler = (opts: any, ...handlers: any[]) =>
{
return this.factoryRouts('GET', opts, handlers);
}
post:ServerRoutHandler = (opts: any, ...handlers: any[]) =>
{
return this.factoryRouts('POST', opts, handlers);
}
del:ServerRoutHandler = (opts: any, ...handlers: any[]) =>
{
return this.factoryRouts('DELETE', opts, handlers);
}
Но, кажется, больше, как обходной путь и слегка изменяет поведение функции.
Есть ли другой синтаксис? Как это:
get<ServerRoutHandler>(opts: any, ...handlers: any[])
{
return this.factoryRouts('GET', opts, handlers);
}
// It's not works as expected
Что вы подразумеваете под «слегка изменяет поведение функции»? В чем проблема? – Louis
@Louis, если я реализую это в классе, это будет свойство, а не функция. – ktretyak