microsoft / microsoft/TypeScript
The return value of function type is not checked when function may return any
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: 4.2.0-dev.20201124
Search Terms:
function, type check, any
Code
const f1: () => number = () => {
if (window) {
return {} as any;
}
return "a"; // Pass
};
// Expected behavior
const f2: () => number = () => {
return "a"; // Error: Type '() => string' is not assignable to type '() => number'
};
// Expected behavior
function f3(): number {
if (window) {
return {} as any;
}
return "a"; // Error: Type 'string' is not assignable to type 'number'.
};
Expected behavior:
f1 causes an error because it returns a string.
Actual behavior:
f1 does not cause an error.
Playground Link:
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 par la reproduction liée dans TypeScript Playground et comparez les vérifications de f1, f2 et f3, en vous concentrant sur la validation du type de retour lorsqu'une branche retourne any. Suivez la vérification du retour de fonction par le compilateur jusqu'à ce que le retour de type string soit diagnostiqué ; c'est terminé lorsque f1 signale l'erreur de type attendue sans modifier les cas valides.
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