facebook / facebook/flow

Do...while types not treated same as while types

Aperta
#3,810 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
22.3k
Fork
1.9k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I think there's an issue dealing with the do statement here:

```js
const getSomeParentNode = (element: Element) => {
let elementParent = element.parentNode;

if (!elementParent) {
return null;
}

do {
elementParent = elementParent.parentNode;

if (!elementParent) {
return null;
}
} while (elementParent !== document.body);

return elementParent;
};
```

```
11: elementParent = elementParent.parentNode;
^ property `parentNode`. Property cannot be accessed on possibly null value
```

Whereas the regular `while` loop version correctly recalculates the type of `elementParent` at the top of the loop.

```js
const getSomeParentNode = (element: Element) => {
let elementParent = element.parentNode;

if (!elementParent) {
return null;
}

while (elementParent !== document.body) {
elementParent = elementParent.parentNode;

if (!elementParent) {
return null;
}
}

return elementParent;
};
```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.