facebook / facebook/flow

The `throw` operator should be more strict

Offen
#2,172 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
linter
Vorherrschende Sprache
Rust
Sterne
22.3k
Forks
1.9k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I tried searching, but I didn't find any existing issues about this.

Currently, using version 0.30.0 of flow-bin, the following code shows no errors:

```
function foo() {
throw null;
}

function bar() {
throw 5;
}

function qux() {
throw [];
}
```

It seems that the `throw` operator will accept any type.

I think it should only accept `Error`. If that is too restrictive, it could be relaxed to `Error | string`.

This actually bit me when I was writing a function which accepts an optional argument: if the argument is not provided, then it will `throw` `undefined`, which is not what I wanted.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.