New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

typedef

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typedef

Low-level type-centric utility functions for Javascript.

  • 1.1.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Typedef

Build Status NPM version

Low-level type-centric utility functions for Javascript.

browser support

Installation

Typedef can be used on the server with NodeJS or on the client, built with Browserify, so install with npm:

npm install typedef

Usage

extends(Child, Base)

While traditionally, favoring composition over inheritance in Javascript is typically the way to go, classic inheritance can be useful if used sparingly.

This is the extends function that is used in Typescript, Coffeescript, ES6 compilers, etc. It uses prototypes to setup something similar to to classical single inheritance.

var extends_ = require('typedef').extends;

function Base()
{
  console.log('base ctor');
}

Base.prototype.method = function()
{
  console.log('hello from base class');
}

...

extends_(Child, Base);

function Child()
{
  // Call base constructor
  Child.Super.apply(this, arguments);

  console.log('child ctor');
}

Child.prototype.method2 = function()
{
  console.log('hello from child class');
}

...

var foo = new Child();
// base ctor
// child ctor

foo.method();
// hello from base class

foo.method2();
// hello from child class

foo instanceof Child;
// true

foo instanceof Base;
// true

mixin(Constructor, Mixin)

Class composition method. Mixin methods into Constructor.prototype.

If Mixin is a constructor function (class), then mixin all static properties into Constructor, and everything on Mixin.prototype to Constructor.prototype. If Mixin is just a Plain Old Object, then simply add the members of Mixin to Contructor.prototype.

getArguments(f) and getName(f)

Get the name of all the parameters or name for function f.

var getArguments = require('typedef').getArguments;
var getName      = require('typedef').getName;

function foo(a, b, c)
{
  ...
}

getArguments(foo);
// ['a', 'b', 'c']

getName(foo);
// 'foo'

Tern Support

The library files are all decorated with JSDoc3-style annotations that work great with the Tern code inference system. Combined with the Node plugin (see this project's .tern-project file), you can have intelligent autocomplete for methods in this library.

Testing

Testing is done with Tape and can be run with the command npm test.

Automated CI cross-browser testing is provided by Testling.

License

Copyright 2014 Brandon Valosek

Typedef is released under the MIT license.

Keywords

FAQs

Package last updated on 28 Aug 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc