Comment puis-je Refactor annotations de type?

voix
1

Supposons que je suis la définition d'un module, et j'ai quelques définitions de fonctions comme celle-ci:

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;

J'utilise à plusieurs reprises cette annotation de type de retour:

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

Y at-il un moyen de définir ce type, attribuez-lui un nom et une référence juste le nom au lieu de répéter la même chose?

Créé 04/10/2012 à 23:51
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
6

Oui! Vous pouvez utiliser une interface avec une signature d'appel:

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

Maintenant, vous pouvez l'utiliser comme:

export function bodyParser(options?: any): MyCallSignature
Créé 04/10/2012 à 23:56
source utilisateur

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