microsoft / microsoft/TypeScript
Error on static class members named 'constructor' should be consistent
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
TypeScript Version: 3.7.0-dev.20190831
Search Terms: class, constructor, static, computed, quoted
Code
class A { static constructor() {} }
class B { static "constructor"() {} }
class C { static ["constructor"]() {} }
Expected behavior:
Even though it may be confused with non-standard extensions like #265, I think treating all cases equally would be less confusing, because unlike non-static ["constructor"] there is no difference at runtime.
Actual behavior:
A and B (with #31949) get a 'static' modifier cannot appear on a constructor declaration.
diagnostic.
Playground Link:
http://www.typescriptlang.org/play/#code/MYGwhgzhAECC0G9oQC5hQS2NYB7AdqgE4CuwKuRAFAJSIC+09AUKJDAEKLJqbYBEeQilLlK-WgyatwUaAGFuqdFmgBtQQWJkKRfgF1JCRiyA
Related Issues: #31020, https://github.com/eslint/eslint/pull/12110
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, die Beispiele A, B und C im verlinkten TypeScript Playground zu reproduzieren, und vergleiche ihre Diagnosen. Lies das in verwandtem Issue #31949 beschriebene Verhalten und verfolge anschließend die Compilerbehandlung für statische Member namens constructor; abgeschlossen ist die Aufgabe, wenn die drei Formen wie unter Expected behavior beschrieben einheitlich behandelt werden.
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
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100