20

Can I convert TypeScript file to JavaScript file with JSDoc?
For example, if I have this main.ts file:

let x: string = "hello";
// This could be number or array of numbers
let y: number | number[];

It will be converted to something like this main.js file:

/**
 * @type {string}
 */
let x = "hello";
/**
 * This could be number or array of numbers
 * @type {number | number[]}
 */
let y;

And so on.
Is there a way to do that?
Thank you!

2 Answers 2

13

While functionality like this is outside of TypeScript's scope, it is possible to make use of the Compiler API it does provide to interpret types and convert them to JSDoc documentation. You can find documentation on the Compiler API in the TypeScript GitHub repository.

(Alternatively, you can use the NPM package ts-to-jsdoc to handle this work for you!)

Disclaimer: I wrote ts-to-jsdoc. You can find the source code at https://github.com/futurGH/ts-to-jsdoc under the MIT license.

Sign up to request clarification or add additional context in comments.

4 Comments

could you elaborate a bit on the "for good reason"?
any way to integrate this into npmjs.com/package/gulp-typescript?
Not sure if I did it right but I've taken the code from OP and ran ts-to-jsdoc and no jsdoc can be found in the output. Your repository describes the project as converting "TypeScript code annotated with JSDoc" but OP did not have the code typed with JSDoc already.
@HMR You're right — ts-to-jsdoc currently doesn't annotate top-level variables, only functions, classes, interfaces, and types. Feel free to open an issue on the repo if you'd like and I can look into implementing that.
0

Based on the description of this tool it could be useful for you since it seems to do exactly what you need, i.e. transpile TypeScript into plain ES code with JSDoc comments - have a look here:

https://github.com/SoftwareBrothers/better-docs#examples

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.