microsoft / microsoft/TypeScript
JSDoc disappeared in overloading with mapped type
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, die drei verlinkten TypeScript Playground-Beispiele auszuführen, und vergleiche die Fälle mit Überladungen in mapped types mit dem funktionierenden Fall und dem eigenständigen callable interface. Verwende die bereitgestellten TypeScript-Snippets, um die fehlenden JSDoc-Kommentare zu reproduzieren. Als erledigt gilt die Aufgabe, wenn alle Beispiele ihre deklarierten JSDoc-Kommentare beibehalten, einschließlich mapped types mit überladenen Aufrufsignaturen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100