microsoft / microsoft/TypeScript
Is there a way to use TypeScript to prevent accidental global access?
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
I just spent 2 hours tracking down this issue:
- We have a class with a prototype method called
focus() - Our code was calling
focus(), but it should have been callingthis.focus() - The code compiled fine, because
window.focus()shares the same signature as ourfocus()method
Is there a way to throw a compile time error when implicitly accessing global methods (on window, global, etc.)?
If not, a compiler flag would be extremely helpful. I would happily be more explicit about commonly used globals (window.setTimeout, window.document, ...) if it meant I could more easily catch insidious bugs like this one.
Full commit here: https://github.com/coatue/SlickGrid/commit/0f8bab3fa9968173d749ccdf535c88f3a526ca8b.
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 le commit SlickGrid lié afin de reproduire l’accès global accidentel décrit dans l’issue. Consultez la discussion pour déterminer si le comportement demandé est un diagnostic du compilateur ou un nouveau flag ; aucun fichier source ni test n’est nommé, la réalisation nécessiterait donc une conception approuvée et une couverture correspondante du compilateur.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100