Wie Refactoring ich Typenannotationen?

stimmen
1

Nehmen wir an, ich bin ein Modul, und ich habe einige Funktionsdefinitionen wie folgt aus:

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;

Ich bin diese Rückgabetyp Anmerkung wiederholt mit:

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

Gibt es eine Möglichkeit, diese Art zu definieren, weisen Sie ihm einen Namen, und nur den Namen verweist stattdessen die gleiche Sache der Wiederholung?

Veröffentlicht am 04/10/2012 um 23:51
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
6

Ja! Sie können eine Schnittstelle mit einem Aufruf Signatur verwenden:

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

Jetzt können Sie es verwenden, wie:

export function bodyParser(options?: any): MyCallSignature
Beantwortet am 04/10/2012 um 23:56
quelle vom benutzer

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