this project is fork by https://github.com/whxaxes/js2dts.git , and add features:
- support dir
- support merge d.ts files to one index.d.ts,but only support class declare. see merge_d_ts_files.py
Generate dts for javascript
TS has support generating d.ts for js by flags(
allowJs
anddeclarations
) in version 3.7 . So this project will not maintained anymore. ( eg.tsc --allowJs --declaration --emitDeclarationOnly myfile.js
)
npm i js2dts -g
or
yarn global add js2dts
Usage: j2d [options] <file>
Options:
-v, --version output the version number
-d, --dist [path] Create dts to giving path (default to the same dir as file)
-t, --terminal Output the result to terminal instead of writing file to disk
--no-prefix The generated code will has no prefix
--ignore-private Private properties are also being export
-h, --help output usage information
Example
$ j2d ./test.js
or
$ js2dts ./test.js
source code
// function/index.js
module.exports = superName;
/**
* super function
*
* @param {String} bbb 123123
*/
function superName(bbb, ccc = module.exports.test) {
return '123123';
}
module.exports.test = () => 123123;
module.exports.test2 = {
abc: 123,
};
output dts
// function/index.d.ts
interface T104 {
test: () => number;
test2: _Function.T105;
}
/**
* super function
*
* @param {String} bbb 123123
*/
declare function superName(bbb: string, ccc?: () => number): string;
declare const _Function: typeof superName & T104;
declare namespace _Function {
export interface T105 {
abc: number;
}
}
export = _Function;
More example: tests/fixtures/**/*.d.ts