microsoft / microsoft/TypeScript
Incorrect type inference for Record with symbol key
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
TypeScript Version: Nightly
Search Terms: Record, Symbol, symbol as index
Code
export type SN = Record<symbol, number>
const s = Symbol()
const sn: SN = {}
const n = sn[s] // n is of type any instead of number
Expected behavior:
A Record with symbols as key should allow to access properties by symbol with correct type
Actual behavior:
All keys are any type.
Related Issues: #1863
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez l’exemple de l’issue avec le TypeScript Nightly playground ou la version de TypeScript indiquée, puis suivez le traitement par le compilateur de l’accès indexé à Record<symbol, number>. Comparez le type inféré de sn[s] avec le number attendu et utilisez l’issue associée #1863 comme contexte. La tâche est terminée lorsque l’accès à un Record indexé par symbol est inféré comme number plutôt que any, avec un test de régression couvrant l’exemple.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100