dts-element
TypeScript icon, indicating that this package has built-in type declarations

2.3.3 • Public • Published

dts-element

npm build coverage

A DOM library for generation TypeScript declaration (.d.ts) files

Changelog - Examples - Documentation

Features

  • 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 using dts.parse(), useful for restructuring types

Installation

using npm

npm install --save dts-element

using yarn

yarn add dts-element

Usage

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;
    }
}

Development

# test 
yarn run test
 
# build 
yarn run build
 
# lint 
yarn run lint
 
# generate docs 
yarn run docs

Related

  • dts-dom: another dts DOM library from TS team member

Readme

Keywords

none

Package Sidebar

Install

npm i dts-element

Weekly Downloads

56

Version

2.3.3

License

MIT

Unpacked Size

187 kB

Total Files

214

Last publish

Collaborators

  • ikatyang