2015-11-25 10 views
10

Sto lavorando allo sviluppo di test di goniometro usando Typescript. Sembra che il file d.ts disponibile per il goniometro sia molto obsoleto. Sto cercando di aggiornarlo per includere il goniometro delle condizioni previste. (http://www.protractortest.org/#/api?view=ExpectedConditions) Per riassumere, le Condizioni previste sono un insieme di funzioni all'interno del goniometro che restituiscono una funzione che restituisce una promessa del valore.Qual è il tipo di ritorno per una funzione che restituisce un'altra funzione

Un esempio di utilizzo:

protractor.ExpectedCondtions.visibilityOf(element(by.id('button1')))(); 

stumped su come dire a goniometro che sto tornando una funzione che restituisce un tipo di ritorno specifica. Qualcuno ha qualche esperienza con questo?

+0

Non sarebbe il tipo di ritorno da 'Funzione'? – tymeJV

+0

Vorrei indicare il tipo di ritorno della seconda funzione, se possibile. "Funzione" funziona comunque. – jordan

risposta

12

Se ho capito bene, la soluzione dipenderà dal tipo restituito dalla funzione "secondo".

In poche parole, ci sono almeno 2 modi per farlo:

  1. Lambda sintassi
  2. Interfacce (interfacce normali e generici)

che ho cercato di spiegare tutti questi nel codice qui sotto, per favore, controlla:

module main 
{ 
    export class TestClass 
    { 
     // Use lamba syntax as an interface for a return function 
     protected returnSpecificFunctionWhichReturnsNumber():() => number 
     { 
      return this.specificFunctionWhichReturnsNumber; 
     } 

     protected specificFunctionWhichReturnsNumber(): number 
     { 
      return 0; 
     } 

     // Use an interface to describe a return function 
     protected returnSpecificInterfaceFunction(): INumberFunction 
     { 
      return this.specificFunctionWhichReturnsNumber; 
     } 

     // Use a generic interface to describe a return function 
     protected returnSpecificGenericInterfaceFunction(): IReturnFunction<number> 
     { 
      return this.specificFunctionWhichReturnsNumber; 
     } 
    } 

    // An interface for a function, which returns a number 
    export interface INumberFunction 
    { 
     (): number; 
    } 

    // A generic interface for a function, which returns something 
    export interface IReturnFunction<ValueType> 
    { 
     (): ValueType; 
    } 
} 
Problemi correlati