microsoft / microsoft/TypeScript
JSDoc disappeared in overloading with mapped type
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
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
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 exécuter les trois exemples liés de TypeScript Playground, en comparant les cas de surcharge dans les mapped types avec le cas fonctionnel et avec la callable interface autonome. Utilisez les snippets TypeScript fournis pour reproduire le JSDoc manquant. C’est terminé lorsque tous les exemples conservent leur JSDoc déclaré, y compris les mapped types avec des signatures d’appel surchargées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100