microsoft / microsoft/TypeScript
Add a specific error message for disallowed imports in project references?
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
Suggestion
🔍 Search Terms
project reference back import
✅ Viability 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, new syntax sugar for JS, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.
⭐ Suggestion
After introducing project references to a monolith repo with many developers, I've sometimes seen confusion over people writing imports from projects in the incorrect direction: e.g. if project B has a tsconfig reference to project A, trying to import from B in A. ♻️
https://github.com/JoshuaKGoldberg/ts-repro-back-reference-import
Here's an example error message that says what's technically wrong but doesn't give much context:
src/a/index.ts:1:19 - error TS6307: File '---/src/b/index.ts' is not listed within the file list of project '---/src/a/tsconfig.json'. Projects must list all files or use an 'include' pattern.
1 import { b } from "../b";
~~~~~~
📃 Motivating Example
Adding a specific error for these incorrect direction ("back") imports might help folks new to project references understand what they're doing wrong:
src/a/index.ts:1:19 - error TS6307: File '---/src/b/index.ts' is not listed within the file list of project '---/src/a/tsconfig.json'. Projects must list all files or use an 'include' pattern.
File "---/b/index.ts" is included in "---/b/tsconfig.json", but "---/a/tsconfig.json" does not list a reference to "---/b/tsconfig.json".
1 import { b } from "../b";
~~~~~~
💻 Use Cases
https://github.com/JoshuaKGoldberg/ts-repro-back-reference-import
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 reproduire l’importation de back-reference dans le dépôt lié ts-repro-back-reference-import et examinez les références de projet tsconfig.json concernées. Comparez le diagnostic TS6307 existant avec le contexte supplémentaire proposé, puis identifiez les emplacements du diagnostic du compilateur TypeScript et des tests qui gèrent l’inclusion des fichiers de projet. C’est terminé lorsque l’importation incorrecte produit un message spécifique et exploitable sans modifier le comportement des références de projet valides.
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é
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100