microsoft / microsoft/TypeScript
Bug with resolveClassOrInterfaceMembers
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
https://github.com/Microsoft/TypeScript/blob/6db4faf4883636e70ef7a99401b9dbc5d1a58631/src/compiler/checker.ts#L2894
```
interface monster {
(a: "a"): void;
(b: "b"): void;
(c: "c"): void;
(d: "d"): void;
(e: "e"): void;
(x: string): void;
}
interface m1 extends monster {
a();
}
interface m2 extends monster {
b();
}
interface m3 extends monster { }
interface m4 extends monster { }
interface m5 extends m1, m2, m3, m4 { }
var waa: m5;
waa("a")
```
The compiler finds 24 call expressions because it appends 'monster' from each base type.
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
Commencez dans src/compiler/checker.ts, à l’emplacement lié de resolveClassOrInterfaceMembers, et reproduisez le problème avec la hiérarchie d’interfaces et l’expression d’appel présentée ici. Suivez la manière dont les membres du type de base répété sont collectés, puis vérifiez que le compilateur ne signale plus 24 expressions d’appel pour 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é
- Plutôt claire
- Accessibilité débutants
- 35/100