microsoft / microsoft/TypeScript
Provide type coverage metrics
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
Search Terms
- type coverage
- flow coverage
Suggestion
I'd love it if TypeScript had a tool to capture type coverage metrics, similar to Flow's Type Coverage feature. That coverage data could be used by IDEs (again, currently supported by Flow) to highlight gaps in type coverage. Basically, it should tell us which parts of our code are being evaluated as any.
Assuming it would work like Flow's feature, this could be a separate tsc option or separate cli command. Theirs works for single files and also offers a batch-coverage command for checking directories / whole projects, etc.
Use Cases
- The Type Coverage metric could be used much like test coverage info, helping us to identify gaps in our typing (particularly unexpected gaps caused by insufficient type definitions from library code).
Examples
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.
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 examiner la documentation de Flow Type Coverage et de batch-coverage liée dans l’issue, puis étudiez comment les options de tsc ou les commandes CLI de TypeScript pourraient exposer des métriques équivalentes. Le travail est considéré comme terminé lorsqu’il indique quelles parties du code sont évaluées comme any pour des fichiers individuels et pour la couverture d’un répertoire ou de l’ensemble du projet, avec des données exploitables par les IDE.
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é
- Plutôt claire
- Accessibilité débutants
- 30/100