microsoft / microsoft/TypeScript
Add support for beforeDeclarations
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
🔍 Search Terms
beforeDeclarations declaration transform transformers afterDeclarations
✅ Viability Checklist
- 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, new syntax sugar for JS, etc.)
- This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
⭐ Suggestion
The TypeScript compiler API already supports custom transformers in 3 ways:
- Before built-in .js transformations
- After built-in .js transformations
- After built-in .d.ts transformations
But the API is missing a "Before built-in .d.ts transformations" variant.
📃 Motivating Example
To generate type declarations more dynamically, you often need to access AST nodes of your codebase as it is written. The built-in transformers erase already a lot of the AST making this information unavailable. With the help of this new beforeDeclarations you are able to access your full AST and use it to auto-generate your typescript declaration files.
💻 Use Cases
- Use information from property initializers to include "default values" your JSDoc comments. (see #41486).
- Remove declarations using information like visibility modifiers or used functions in your code to not expose implementation details.
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 les variantes existantes de transformateurs personnalisés de la TypeScript compiler API, en particulier les étapes before et after de transformation des déclarations décrites dans l’issue. Comparez les formes de leurs API publiques et déterminez comment une étape beforeDeclarations pourrait s’y intégrer. La tâche est terminée lorsque les transformateurs personnalisés peuvent accéder à l’AST avant transformation pour la génération des déclarations et que les cas d’utilisation à l’origine de la demande sont pris en charge.
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
- 25/100