Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initializer property to JSDocParameterTag node #61373

Open
6 tasks done
AlfonzAlfonz opened this issue Mar 7, 2025 · 0 comments
Open
6 tasks done

Add initializer property to JSDocParameterTag node #61373

AlfonzAlfonz opened this issue Mar 7, 2025 · 0 comments

Comments

@AlfonzAlfonz
Copy link

🔍 Search Terms

param, parameter, argument, jsdoc, initializer, default value, parameter

✅ Viability Checklist

⭐ Suggestion

Add an optional initializer property to the JSDocParameterTag, which will contain the default value of the param tag.

For a function:

/**
 * @param {string} [p="test"] - An optional param with a default value
 */
const abc = (p) => {};

The initializer property will be test.

This is a parity change with the Parameter node, which has initializer property for initializer in the parameter declaration:

const abc = (p: string = "test") => {};

📃 Motivating Example

Adding the initializer property to the JSDocParameterTag makes it possible to indicate default value of any overloaded function or function declaration, which was previously impossible. This adds the same property which was previously only available on the Parameter node. So IDEs or other tools built on TypeScript compiler now can easily communicate the default value of the parameter.

Since the default value of the parameter is currently already parsed, it should by trivial to just add it to the node as a new property and shouldn’t cause any performance issues.

💻 Use Cases

  1. What do you want to use this for?
    This can be used by IDEs or other tooling (such as documentation generators) to show default value of the parameter, which rely on TypeScript compiler.
    In my use case I’m building a documentation generator which outputs parameter table for functions with types, default values and descriptions. For default values I’m using the initializer of the function and if it’s not specified I would like the default value from the param tag.

  2. What shortcomings exist with current approaches?

    There is no way how to access default values of overloaded methods or method declarations. This is also true for overloaded methods where initializer is not permitted in the parameter itself.

  3. What workarounds are you using in the meantime?

    The tools which want to use this have to parse the jsdoc parameter themselves.

If this issue gets approved I would gladly submit a PR for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant