Generate markdown API documentation directly from TypeScript source code.
npm i typescript-documentation
> typescript-documentation [options]
Options:
-p, --project <tsconfig file> relative or absolute path to a tsconfig.json file (default: "./tsconfig.json")
-e, --entry <main file> entry/main file of project (default: "./src/index.ts")
-o, --output <markdown file> markdown documentation output file location (default: "./docs/README.md")
-h, --help output usage information
Example input:
/**
* Simple variable description
* line 2
* @see {@link https://test.url.1|Example url 1}
* @see {@link https://test.url.2|Example url 2}
* @example
* example 1 line 1
* example 1 line 2
* @example
* example 2 line 1
* example 2 line 2
*/
export const simpleVariable: number = 1;
Example output:
Simple variable description line 2
TYPE
number
EXAMPLES
example 1 line 1
example 1 line 2
example 2 line 1
example 2 line 2
SEE ALSO
Example input:
/**
* Simple function description
* line 2
* @see {@link https://test.url.1|Example url 1}
* @see {@link https://test.url.2|Example url 2}
* @example
* example 1 line 1
* example 1 line 2
* @example
* example 2 line 1
* example 2 line 2
* @param a first parameter description
* @param b second parameter description
*/
export function simpleFunction(a: string, b?: number): string {
return a;
}
Example output:
Simple function description line 2
PARAMETERS
a
: string - first parameter descriptionb?
: number - second parameter description
RETURNS
string
EXAMPLES
example 1 line 1
example 1 line 2
example 2 line 1
example 2 line 2
SEE ALSO
Example input:
/**
* Simple class description
* line 2
* @see {@link https://test.url.1|Example url 1}
* @see {@link https://test.url.2|Example url 2}
* @example
* example 1 line 1
* example 1 line 2
* @example
* example 2 line 1
* example 2 line 2
*/
export class SimpleClass {
/**
* simpleMethod1 description
* line 2
* @see {@link https://test.url.3|Example url 3}
* @see {@link https://test.url.4|Example url 4}
* @example
* example 3 line 1
* example 3 line 2
* @example
* example 4 line 1
* example 4 line 2
*/
public simpleMethod1(): void {
return;
}
/**
* simpleMethod2 description
* line 2
* @param a first parameter description
* @param b second parameter description
*/
public simpleMethod2(a: string, b: number): string {
return a + b;
}
}
Example output:
Simple class description line 2
EXAMPLES
example 1 line 1
example 1 line 2
example 2 line 1
example 2 line 2
SEE ALSO
simpleMethod1 description line 2
RETURNS
void
EXAMPLES
example 3 line 1
example 3 line 2
example 4 line 1
example 4 line 2
SEE ALSO
simpleMethod2 description line 2
PARAMETERS
a
: string - first parameter descriptionb
: number - second parameter description
RETURNS
string
Example input:
/**
* Simple type description
* line 2
* @see {@link https://test.url.1|Example url 1}
* @see {@link https://test.url.2|Example url 2}
* @example
* example 1 line 1
* example 1 line 2
* @example
* example 2 line 1
* example 2 line 2
*/
export type SimpleType = {
/**
* first property description
*/
a: string;
/**
* second property description
*/
b?: number;
};
Example output:
Simple type description line 2
PROPERTIES
a
: string - first property descriptionb?
: number - second property description
EXAMPLES
example 1 line 1
example 1 line 2
example 2 line 1
example 2 line 2
SEE ALSO
Example input:
/**
* Simple enumeration description
* line 2
* @see {@link https://test.url.1|Example url 1}
* @see {@link https://test.url.2|Example url 2}
* @example
* example 1 line 1
* example 1 line 2
* @example
* example 2 line 1
* example 2 line 2
*/
export enum SimpleEnum {
ONE,
TWO
}
Example output:
Simple enumeration description line 2
POSSIBLE VALUES
ONE
TWO
EXAMPLES
example 1 line 1
example 1 line 2
example 2 line 1
example 2 line 2
SEE ALSO