microsoft / microsoft/TypeScript

Uncalled function checks don't work with negation

Offen
#43,096 1 Kommentar 4 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

In Discussion Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

Bug Report

🔎 Search Terms

uncalled function checks, negation

🕗 Version & Regression Information
  • This is the behavior in every version I tried
⏯ Playground Link

Playground link with relevant code

💻 Code
declare function isFoo(): boolean;
declare const isUndefinedFoo: (() => boolean) | undefined;

if (isFoo) {
    // uncalled function checks already work well here
}

if (!isFoo) {
    // uncalled function checks should cover this case too
}

if (!isUndefinedFoo) {
    // this case should not be covered
}
🙁 Actual behavior

Uncalled function checks do not work with the ! operator.

🙂 Expected behavior

Unless a function may be undefined it would be very helpful to check whether it is called when it is used with the ! operator.

I created this issue to separate a part of the implementation of #42835 resulting from issue #35584. This specific issue was inspired by https://github.com/microsoft/TypeScript/issues/35584#issuecomment-769401594.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere das Verhalten im verlinkten TypeScript Playground und vergleiche dabei die positiven und negierten Prüfungen für isFoo und isUndefinedFoo. Lies die mit #42835 verbundene Implementierung von uncalled-function-check sowie die Diskussion in #35584; als erledigt gilt die Aufgabe, wenn die Negation definitiv definierte, nicht aufgerufene Funktionen meldet, ohne fälschlicherweise möglicherweise undefinierte Funktionen zu melden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

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