microsoft / microsoft/TypeScript
Add support for `@file` jsdoc tag to describe a module
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
🔍 Search Terms
fileoverview
✅ Viability Checklist
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
⭐ Suggestion
JSDoc supports the @file tag to document a file (module). Synonyms are @fileoverview and @overview.
Currently TypeScript allows you to document a module like this:
/**
* This comment describes `some-module`.
*/
declare module 'some-module' {
/**
* This comment describes `fn`.
*/
export function fn(): unknown;
}
This description shows up when you hover over an import of some-module.
However, it’s generally considered more idiomatic avoid declare module:
/**
* This comment describes `fn`.
*/
export function fn(): unknown;
In this case, there’s not way to describe the module.
I believe the @file tag provides a perfect way to describe a module. So the following code would be equivalent to the original example above.
/**
* @file
* This comment describes `some-module`.
*/
/**
* This comment describes `fn`.
*/
export function fn(): unknown;
I noticed that current module descriptions show up on hover, but not in autocomplete. I believe it would be nice to add support for that too.
📃 Motivating Example
TypeScript now supports the @file tag to describe a module.
💻 Use Cases
- What do you want to use this for?
I would describe modules. It would be nice to generate documentation from source as well.
- What shortcomings exist with current approaches?
It can’t be done without declare module.
- What workarounds are you using in the meantime?
I don’t document modules.
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 nachzuverfolgen, wie vorhandene Modulbeschreibungen gesammelt und im Hover angezeigt werden, und untersuche anschließend die JSDoc-Verarbeitung und die Autocomplete-Pfade. Ermittle, wie die Tags @file, @fileoverview und @overview ein Modul ohne declare module identifizieren sollen. Erledigt ist die Aufgabe, wenn Modulbeschreibungen für das gezeigte Exportmuster funktionieren und konsistent in Hover und Autocomplete erscheinen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, typescript
- Bereich
- developer-experience, documentation
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 52/100