microsoft / microsoft/TypeScript
JSDoc disappeared in overloading with mapped type
オープン
まだ誰も着手していません。
Bug
Domain: JSDoc
- 主要言語
- Go
- スター
- 111k
- フォーク
- 14.4k
- 平均マージ
- 1日 19時間
- マージ済み PR(30日)
- 117
説明
Bug Report
🔎 Search Terms
vscode, jsdoc
🕗 Version & Regression Information
4.1.3
⏯ Playground Link
example 1, bug, no jsdoc:
No JSDoc if overloading in mapped type

example 2, works well:
Has JSDoc if no overloading in mapped type

example 3, bug, no jsdoc:
JSDoc disappeared without overloading

💻 Code
type ApiDict = {
/**
* jsdoc for getString
*/
getString: string;
/**
* jsdoc for getBoolean
*/
getBoolean: boolean;
};
type Api = {
[key in keyof ApiDict]: {
(url: string): ApiDict[key];
(url: string, config: {}): { data: ApiDict[key]; extra: any };
};
};
declare const api: Api;
api.getBoolean('', {});
type ApiDict = {
/**
* jsdoc for getString
*/
getString: string;
/**
* jsdoc for getBoolean
*/
getBoolean: boolean;
};
type Api = {
[key in keyof ApiDict]: {
(url: string, config: {}): { data: ApiDict[key]; extra: any };
};
};
declare const api: Api;
api.getBoolean('', {});
/**
* jsdoc for JsdocDisappearedWithoutOverloading
*/
interface JsdocDisappearedWithoutOverloading {
(url: string): any;
}
declare const jsdocDisappearedWithoutOverloading: JsdocDisappearedWithoutOverloading;
jsdocDisappearedWithoutOverloading('');
🙂 Expected behavior
All of examples has jsdoc
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、リンクされている3つの TypeScript Playground の例を実行し、mapped type のオーバーロードのケースを、動作するケースおよび単独の callable interface と比較します。提供されている TypeScript スニペットを使用して、欠落している JSDoc を再現します。すべての例で、オーバーロードされた呼び出しシグネチャを持つ mapped type を含め、宣言された JSDoc が保持されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- typescript
- 領域
- compilers
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100