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

1.2.0 • Public • Published

dts-element-fp

npm build coverage

typescript definition generator for functional programming

Changelog - Examples - Documentation

Install

# using npm 
npm install --save-dev dts-element-fp dts-element
 
# using yarn 
yarn add --dev dts-element-fp dts-element

Usage

import * as dts from 'dts-element';
import * as dts_fp from 'dts-element-fp';
 
const curried_interfaces = dts_fp.create_curried_interfaces(3);
 
dts.emit(curried_interfaces); /*=>
  interface CurriedFunction1<T1, R> {
      (v1: T1): R;
  }
  interface CurriedFunction2<T1, T2, R> {
      (v1: T1): CurriedFunction1<T2, R>;
      (v1: T1, v2: T2): R;
  }
  interface CurriedFunction3<T1, T2, T3, R> {
      (v1: T1): CurriedFunction2<T2, T3, R>;
      (v1: T1, v2: T2): CurriedFunction1<T3, R>;
      (v1: T1, v2: T2, v3: T3): R;
  }
*/
 
const curried_declarations_normal = dts_fp.create_curried_declarations(
  'append',
  dts.parse_type('<T, U>(value: T, list: List<U>) => (T | U)[]'),
);
 
dts.emit(curried_declarations_normal); /*=>
  declare const append: append_00;
  type append_00 = {
      <T>(value: T): append_10<T>;
      <T, U>(value: T, list: List<U>): append_11<T, U>;
  };
  type append_10<T> = {
      <U>(list: List<U>): append_11<T, U>;
  };
  type append_11<T, U> = (T | U)[];
*/
 
const curried_declarations_various = dts_fp.create_curried_declarations(
  'map',
  {
    list: dts.parse_type('<T, U>(fn: (x: T) => U, list: List<T>) => U[]'),
    functor: dts.parse_type('<T, U>(fn: (x: T) => U, functor: Functor<T>) => Functor<U>'),
  },
);
 
dts.emit(curried_declarations_various); /*=>
  declare const map: map_00;
  type map_00 = {
      <T, U>(fn: (x: T) => U): map_10<T, U>;
      <T, U>(fn: (x: T) => U, list: List<T>): map_list_11<U>;
      <T, U>(fn: (x: T) => U, functor: Functor<T>): map_functor_11<U>;
  };
  type map_10<T, U> = {
      (list: List<T>): map_list_11<U>;
      (functor: Functor<T>): map_functor_11<U>;
  };
  type map_list_11<U> = U[];
  type map_functor_11<U> = Functor<U>;
*/

See Documentation for more options.

Development

# lint 
yarn run lint
 
# build 
yarn run build
 
# test 
yarn run test

Related

  • dts-element - A DOM library for generation TypeScript declaration (.d.ts) files

License

MIT © Ika

Package Sidebar

Install

npm i dts-element-fp

Weekly Downloads

44

Version

1.2.0

License

MIT

Unpacked Size

50.8 kB

Total Files

36

Last publish

Collaborators

  • ikatyang