microsoft / microsoft/tsdoc

Feature support for additional JSDoc tags @interface, @enum, @license

Open
#296 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
5k
Forks
162
Avg merge
17h 24m
Merged PRs (30d)
8

Description

Problem

TypeScript may be used in a mixed mode environment where you may have some TypeScript source files and some JavaScript source files. The TypeScript compiler will process both source file types. In the case when TypeScript processes a .ts source file it can determine when a class is an interface, for example, however, when TypeScript processes a .js source file it cannot. Since both types of source files will be processed by tsdoc there needs to be some mechanism to determine missing information when a .js source file is processed, otherwise the documentation will be incomplete and inaccurate when compared with the TypeScript documentation in the same project.

@interface tag

The @interface tag is supported in JSDoc and it is proposed that it also be supported in tsdoc to allow .js source files to indicate that a class is an interface.

@enum tag

The @enum tag is supported in JSDoc and it is proposed that it also be supported in tsdoc to allow .js source files to indicate that a class is an enumeration.

@license tag

The @license tag is supported in JSDoc and it is proposed that it also be supported in tsdoc to allow both .ts and .js source files to indicate the license associated with the source file.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing how TSDoc processes .ts and .js source files and how existing JSDoc tags are represented. Compare the proposed @interface, @enum, and @license behavior with the linked JSDoc references. Done means all three tags are accepted and the resulting documentation distinguishes interfaces, enumerations, and source-file licenses accurately.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
documentation
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.