microsoft / microsoft/TypeScript

Support `@import` JSDoc tag for auto-imports

オープン
#62,008 コメント 3 件 リアクション 13 件 担当者 0 名 GitHub で見る
Awaiting More Feedback Suggestion
主要言語
Go
スター
111k
フォーク
14.3k
平均マージ
2日 4時間
マージ済み PR(30日)
132

説明

### 🔍 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.)_

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、ここで説明されている TypeScript Language Server の動作と、issue #57207 および #22160 のコンテキストを読みます。現在 auto-imports が inline JSDoc imports をどのように生成しているかを追跡し、サポートすべき結果が設定オプションなのか別のアクションなのかを判断します。auto-imports で要求された @import 構文を生成できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript, typescript
領域
developer-experience, tooling
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。