Hoe kan ik refactoren typeannotaties?

stemmen
1

Laten we aannemen dat ik het definiëren van een module, en ik heb enkele functie definities als volgt uit:

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;

Ik herhaaldelijk gebruik van dit type return annotatie:

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

Is er een manier om dat te definiëren, wijst het een naam, en gewoon verwijzen naar de naam in plaats van het herhalen van hetzelfde?

De vraag is gesteld op 04/10/2012 om 23:51
bron van user
In andere talen...                            


1 antwoorden

stemmen
6

Yep! U kunt een interface met een oproep handtekening te gebruiken:

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

Nu kun je het gebruiken als:

export function bodyParser(options?: any): MyCallSignature
antwoordde op 04/10/2012 om 23:56
bron van user

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