microsoft / microsoft/TypeScript
An index signature parameter type with types extends string or number.
Offen
Dieses Issue hat noch niemand übernommen.
In Discussion
Suggestion
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
An_index_signature_parameter_type_must_be_string_or_number_1023:
with this Feature, I can't make this code work:
export class Events<ED extends EventsDef, EventName extends keyof ED = keyof ED> {
private eventMap = new Map<EventName, Event<ED[EventName]>>();
constructor() {
new Proxy(this, {
get: (target, p) => {
if (p in target) {
return target[p];
} else {
this.getEvent(p as EventName);
}
}
})
}
private getEvent(eventName: EventName) {
return this.eventMap.get(eventName) || this.generateEvent(eventName);
}
private generateEvent(eventName: EventName) {
let event = new Event<ED[EventName]>();
this.eventMap.set(eventName, event);
return event;
}
// error here
readonly [eventName: EventName]: Event<ED[EventName]>;
}
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 dem reproduzierenden TypeScript-Snippet und der Diagnose „An index signature parameter type must be string or number“ in diesem Issue. Verfolge, wie der Typechecker die generische EventName-Index-Signatur verarbeitet, bestimme anschließend das beabsichtigte Verhalten und füge Tests hinzu, die zeigen, wann diese Form akzeptiert oder abgelehnt werden sollte.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100