microsoft / microsoft/TypeScript
Infer type arguments from 'super()' calls
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.4k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
interface Component {
whatever: number;
}
type ComponentConstructor = new <T = {}>(extra: T) => Component & T;
declare const Component: ComponentConstructor;
class ReallyOldComponent extends Component {
constructor() {
super({ name: "Methuselah", age: 969 });
}
blah() {
this.whatever;
this.age;
}
}
Ideally this would produce no errors; in fact, ideally I wouldn't need to specify any type parameter defaults on ComponentConstructor's signature. However, instead, T is inferred as {} and in blah it is an error to access this.age.
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 esaminando la gestione da parte del compilatore TypeScript della costruzione di classi generiche e delle chiamate a super(), usando la riproduzione fornita come riferimento. Il lavoro è completato quando l'esempio non produce errori, il tipo inferito include age su this e non è richiesto alcun parametro di tipo predefinito.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 32/100