Cum pot refactor adnotări de tip?

voturi
1

Să presupunem că eu sunt definirea unui modul, și am câteva definiții de funcții, cum ar fi acest lucru:

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;

Sunt folosind în mod repetat acest tip de întoarcere adnotare:

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

Există o modalitate de a defini acest tip, atribuie un nume, și doar numele de referință în loc de a repeta același lucru?

Întrebat 04/10/2012 la 23:51
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
6

Da! Puteți utiliza o interfață cu o semnătură de apel:

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

Acum îl puteți folosi ca:

export function bodyParser(options?: any): MyCallSignature
Publicat 04/10/2012 la 23:56
sursa de către utilizator

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