microsoft / microsoft/TypeScript

Smarter errors around `Function.length`

Offen
#35,404 0 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Domain: Error Messages
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

I don't know how often other people have encountered this, but here goes: In the same vein as our uncalled function checks, most usages of Function.length are probably an error. Here's a toy example that just bit me:

declare function getResult(): string[];
for (let i = 0; i< getResult.length; i++) {
  getResult().slice(0, i).map(x => console.log(x));
}

Minimally, I think we could suggest that if a function returns something with a length property, and the function's length property is inspected instead, we could probably mark it as suspect.

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

Beginne damit, die bestehenden Prüfungen auf nicht aufgerufene Funktionen im TypeScript-Compiler zu untersuchen, und verfolge dann, wie der Zugriff auf Funktionseigenschaften analysiert wird. Lege die beabsichtigten diagnostischen Grenzen für die Untersuchung von Function.length fest, wenn das Funktionsergebnis eine length-Eigenschaft besitzt, und füge Abdeckung hinzu, die zeigt, wann die Verwendung als verdächtig gilt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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