microsoft / microsoft/TypeScript

In JS, aliasing of C.prototype should cause property assignments to add to the instance

Aperta
#22,640 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

checkJs Domain: JavaScript Needs Proposal Suggestion
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:

  1. Error: can't assign string to property x of type number
  2. 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. 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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.