microsoft / microsoft/TypeScript
Type with overloaded method with a generic overload matches type with incompatible method
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
TypeScript Version: 3.9.0-dev.20200305
Search Terms:
generic type overload
Code
interface I1 {
f<V extends 'a'>(value: V): void;
f(value: 'b'): void;
}
interface I2 {
f(value: 'c'): void;
}
function test(x: I1) {
function u(y: I2) { }
u(x);
}
Expected behavior:
Compilation error, u cannot accept x as I1 cannot handle f('c')
Actual behavior:
Compilation succeeds.
Note that all of the following fail, as expected:
interface I1 {
// f<V extends 'a'>(value: V): void;
f(value: 'b'): void;
}
interface I2 {
f(value: 'c'): void;
}
function test(x: I1) {
function u(y: I2) { }
u(x);
}
interface I1 {
f<V extends 'a'>(value: V): void;
// f(value: 'b'): void;
}
interface I2 {
f(value: 'c'): void;
}
function test(x: I1) {
function u(y: I2) { }
u(x);
}
interface I1 {
f(value: 'a'): void;
f(value: 'b'): void;
}
interface I2 {
f(value: 'c'): void;
}
function test(x: I1) {
function u(y: I2) { }
u(x);
}
Related Issues:
Not sure.
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 avec le compilateur TypeScript 3.9.0-dev.20200305 et les interfaces minimales ainsi que l'appel indiqués dans l'issue, en utilisant l'exemple Playground lié pour reproduire l'affectation acceptée. Confirmez que la combinaison de surcharges générique et non générique accepte incorrectement I1 comme I2, puis ajoutez un test de régression et vérifiez que l'appel produit l'erreur de compilation attendue.
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