Reguła ESLint dla promise w if'ie

0

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

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ć:

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.

1

A czemu nie wolisz napisać testu jednostkowego pod to?

1 użytkowników online, w tym zalogowanych: 0, gości: 1