microsoft / microsoft/TypeScript
In JS, aliasing of C.prototype should cause property assignments to add to the instance
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
// 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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo l'esempio JavaScript/TypeScript fornito e traccia il modo in cui il checker gestisce il Parser.prototype con alias, le assegnazioni a this.x e new Parser().m. Il lavoro è completato quando l'esempio segnala l'assegnazione di stringa come errore, accettando però l'accesso al metodo sulla nuova istanza.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 35/100