Как реорганизовать аннотацию типа?

голоса
1

Давайте предположим, что я определяю модуль, и у меня есть несколько определений функций, как это:

export function bodyParser(options?:any): 
  (req: ExpressServerRequest, res: ExpressServerResponse, next) =>void;
export function errorHandler(opts?:any): 
  (req: ExpressServerRequest, res: ExpressServerResponse, next) =>void;
export function methodOverride(): 
  (req: ExpressServerRequest, res: ExpressServerResponse, next) =>void;
export function favicon(url: string, opts? ): 
  (req: ExpressServerRequest, res: ExpressServerResponse, next) =>void;
export function logger(type: string, opts? ): 
  (req: ExpressServerRequest, res: ExpressServerResponse, next) =>void;

Я несколько раз с помощью этого возвращения аннотации типа:

(req: ExpressServerRequest, res: ExpressServerResponse, next) =>void

Есть ли способ определить, что тип, присвоить ему имя, а просто ссылаться на имя вместо того чтобы повторять то же самое?

Задан 04/10/2012 в 23:51
источник пользователем
На других языках...                            


1 ответов

голоса
6

Ага! Вы можете использовать интерфейс с подписью вызова:

interface MyCallSignature {
    (req: ExpressServerRequest, res: ExpressServerResponse, next): void;
}

Теперь вы можете использовать его как:

export function bodyParser(options?: any): MyCallSignature
Ответил 04/10/2012 в 23:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more