microsoft / microsoft/TypeScript
Support `@import` JSDoc tag for auto-imports
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
"jsdoc @import", "@import auto-import", "jsdoc auto-import"
### ✅ Viability Checklist
- [x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
- [x] This wouldn't change the runtime behavior of existing JavaScript code
- [x] This could be implemented without emitting different JS based on the types of the expressions
- [x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- [x] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- [x] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
### ⭐ Suggestion
Since #57207 it is possible to use the JSDoc `@import` tag.
```js
/** @import { Foo } from 'foo.js'; */
/** @type {Foo} */
const foo = ...;
```
However, auto-imports still only use the old inline syntax:
```js
/** @type {import('foo.js').Foo} */
const foo = ...;
```
It would be nice to also have the option to chose the new `@import` syntax for the auto-imports, either by configuring an option somewhere or simply by adding another action that can be exposed in IDEs.
### 📃 Motivating Example
I believe this falls in line with the ergonomics goals outlined by the original issue about having a nicer syntax for JSDoc imports #22160.
I will not repeat the arguments made therein, but suffice to say that it produces more readable code.
### 💻 Use Cases
Having the auto-import work with this syntax would:
* Save time, not having to write import statements by hand.
* Avoid mistakes due to typos, etc.
* Help people adopt the existing feature.
---
_(I have opened the issue here instead of over in [vscode](https://github.com/microsoft/vscode). Based on my understanding, this behavior is exposed by the TypeScript Language Server and not by the individual IDEs. Please correct me if I'm wrong.)_
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 lire le comportement de TypeScript Language Server décrit ici ainsi que le contexte des issues #57207 et #22160. Suivez la manière dont auto-imports produisent actuellement des imports JSDoc inline, puis déterminez si le résultat pris en charge devrait être une option de configuration ou une action distincte ; le travail est terminé lorsque auto-imports peuvent produire la syntaxe @import demandée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- developer-experience, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100