A DOM library for generation TypeScript declaration (.d.ts) files
Changelog - Examples - Documentation
- reusable
FunctionDeclaration
: it can be method or function based on where it is.VariableDeclaration
: it can be property or variable based on where it is.
- parsable
- parsing TypeScript syntax into
dts-element
usingdts.parse()
, useful for restructuring types
- parsing TypeScript syntax into
using npm
npm install --save dts-element
using yarn
yarn add dts-element
Code
import * as dts from 'dts-element';
const getThing = dts.create_function_declaration({
name: 'getThing',
type: dts.create_function_type({
parameters: [
dts.create_parameter_declaration({
name: 'x',
type: dts.number_type,
}),
],
return: dts.void_type,
}),
}); // equivalent to dts.parse('function getThing(x: number): void;').members[0];
const MyInterface = dts.create_interface_declaration({
name: 'MyInterface',
jsdoc: 'This is my nice interface',
type: dts.create_object_type({
members: [
dts.create_object_member({
optional: true,
owned: getThing,
}),
],
}),
});
const SomeNamespace = dts.create_namespace_declaration({
name: 'SomeNamespace',
members: [MyInterface],
});
console.log(dts.emit(
dts.create_top_level_element({
members: [SomeNamespace],
}),
));
Output
declare namespace SomeNamespace {
/**
* This is my nice interface
*/
interface MyInterface {
getThing?(x: number): void;
}
}
# test
yarn run test
# build
yarn run build
# lint
yarn run lint
# generate docs
yarn run docs
- dts-dom: another dts DOM library from TS team member