Reguła ESLint dla promise w if'ie

Reguła ESLint dla promise w if'ie
AM
  • Rejestracja:prawie 5 lat
  • Ostatnio:około rok
  • Postów:8
0

Mam następującą klasę (encja dla TypeOrm):

Kopiuj
class Foo {
bar: Promise<Bar>;

test() {
if (!this.bar) throw new Error();
}
}

Metoda test nigdy nie wyrzuci wyjątku. Dlaczego? Ponieważ TypeOrm zawsze przypisze wartość (obiekt promise, który może coś zwrócić bądź nie) do bar. Problem polega na tym, że zapomniałem await w if. Powinno być:

Kopiuj
if (!(await this.bar)) throw new Error();

Teraz kod będzie działał zgodnie z oczekiwaniami. Jeśli encja Foo nie ma żadnej wartości pod kluczem obcym bar to zostanie wyrzucony wyjątek.

Szukam reguły ESLint, która zabezpieczy mnie przed takimi pomyłkami (zapominaniem await w if). Niestety @typescript-eslint/no-floating-promises zdaje się nie działać w tym przypadku.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10081
1

A czemu nie wolisz napisać testu jednostkowego pod to?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.