Jak mohu refaktorovat typ anotace?

hlasů
1

Dejme tomu, já definování modul a mám nějaké funkční definice, jako je tento:

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;

Opakovaně se používání tohoto typu návratu anotace:

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

Existuje způsob, jak definovat tento typ, přidělí mu jméno, a jen odkazovat název namísto opakovat to samé?

Položena 04/10/2012 v 23:51
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
6

Ano! Můžete použít rozhraní s podpisem hovoru:

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

Nyní jej můžete použít jako:

export function bodyParser(options?: any): MyCallSignature
Odpovězeno 04/10/2012 v 23:56
zdroj uživatelem

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