microsoft / microsoft/TypeScript
Uncalled function checks don't work with negation
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
Bug Report
🔎 Search Terms
uncalled function checks, negation
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
Playground link with relevant code
💻 Code
declare function isFoo(): boolean;
declare const isUndefinedFoo: (() => boolean) | undefined;
if (isFoo) {
// uncalled function checks already work well here
}
if (!isFoo) {
// uncalled function checks should cover this case too
}
if (!isUndefinedFoo) {
// this case should not be covered
}
🙁 Actual behavior
Uncalled function checks do not work with the ! operator.
🙂 Expected behavior
Unless a function may be undefined it would be very helpful to check whether it is called when it is used with the ! operator.
I created this issue to separate a part of the implementation of #42835 resulting from issue #35584. This specific issue was inspired by https://github.com/microsoft/TypeScript/issues/35584#issuecomment-769401594.
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 le comportement dans le TypeScript Playground lié, en comparant les vérifications positives et négatives pour isFoo et isUndefinedFoo. Lisez l’implémentation de uncalled-function-check associée à #42835 ainsi que la discussion dans #35584 ; le travail est considéré comme terminé lorsque la négation signale les fonctions non appelées définitivement définies sans signaler à tort les fonctions potentiellement indéfinies.
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
- 38/100