2016-12-10 19 views
8

Mam przykładową funkcję obietnicy, jak poniżej. Po sukcesie zwracam number, a na false zwracam string. Kompilator uskarża się, aby podać rodzaj obietnicy rodzajowej. W takim przypadku jaki typ muszę podać? Czy muszę określić, jak Promise<number> lub Promise<number | string>?Typ obietnica typ rodzajowy

function test(arg: string): Promise { 
    return new Promise((resolve, reject) => { 
     if (arg === "a") { 
      resolve(1); 
     } else { 
      reject("1"); 
     } 
    }); 
} 
+1

Próbowałaś 'Obietnica '? – jonrsharpe

+0

Nie narzeka, robiąc to. Czy to jest właściwe? Czy można określić oba typy rozstrzygania i odrzucania? – VJAI

Odpowiedz

14

Typowy rodzaj obietnicy powinien odpowiadać typowi zwrotu bez błędu funkcji. Błąd jest domyślnie typu any i nie jest określony w typie obietnicy.

Tak na przykład:

function test(arg: string): Promise<number> { 
    return new Promise<number>((resolve, reject) => { 
     if (arg === "a") { 
      resolve(1); 
     } else { 
      reject("1"); 
     } 
    }); 
} 
Powiązane problemy