microsoft / microsoft/TypeScript

Support `@import` JSDoc tag for auto-imports

Ouverte
#62,008 3 commentaires 13 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Awaiting More Feedback Suggestion
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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.