microsoft / microsoft/TypeScript
In JS, aliasing of C.prototype should cause property assignments to add to the instance
Offen
Dieses Issue hat noch niemand übernommen.
checkJs
Domain: JavaScript
Needs Proposal
Suggestion
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
// from acorn
function Parser() {
/** @type {number} */
this.x = 1
}
var pp = Parser.prototype
pp.m = function () {
this.x = "should be an error"
return this.x
}
new Parser().m
Expected behavior:
pp.m = function() ... should add a method to the Parser instance. This should result in:
- Error: can't assign string to property x of type number
- No error on
new Parser().m
Actual behavior:
No error on this.x = "should be an error" and an error on new Parser().m
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, das bereitgestellte JavaScript/TypeScript-Beispiel zu reproduzieren, und verfolge, wie der Checker mit dem aliasierten Parser.prototype, Zuweisungen an this.x und new Parser().m umgeht. Fertig ist die Aufgabe, wenn das Beispiel die String-Zuweisung als Fehler meldet, aber den Methodenzugriff auf der neuen Instanz akzeptiert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100