microsoft / microsoft/TypeScript
Inferred missing properties use resolved generic types rather than staying generic
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
TypeScript Version: 3.3.0-dev.20181212
Search Terms: declare property generic missing member
Code
class TestClass<T> {
// Inferred:
// otherValue: number;
public constructor(
public readonly value: T,
) { }
}
const foo = new TestClass<number>(1);
foo.otherValue = foo.value;
Expected behavior:
Declare property 'otherValue' should create otherValue: T;
Actual behavior:
...but it actually creates otherValue: number. Whatever generic type from the place you request the missing property be added will be the type of the property.
Related Issues: I found a lot of similar bugs but didn't see any that looked related...
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 mit der bereitgestellten TypeScript-Playground-Reproduktion mit typescript@next und überprüfe, ob das Verhalten weiterhin auftritt. Verfolge, wie die fehlende Eigenschaft aus der generischen Klasse und dem instanziierten Wert abgeleitet wird. Als abgeschlossen gilt die Aufgabe, wenn die deklarierte Eigenschaft den generischen Typ T beibehält, statt zu number aufgelöst zu werden, und ein Regressionstest das Beispiel abdeckt.
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