Need help with registry?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

235 Stars 184 Forks 1.1K Commits 73 Opened issues


The registry of type definitions for TypeScript

Services available


Need anything else?

Contributors list

Typings Registry

The registry of type definitions for TypeScript.


As package author

You can create typings and distribute them with your NPM package. Check out how we can collaborate (if you need help) in this issue. The TypeScript team gives some additional help in their handbook, which entails creating a definition in external module format and linking to it from

. Feel free to ask questions!

Ask the author

You can open an issue in the package's repository and ask if they'd be interested in providing a TypeScript definition for their users. If they are, you can link them to this issue on collaborating, in case they need a hand getting started.

Contribute yourself

  1. Fork the registry and run
    npm install
  2. Write a typings definition and upload to GitHub - here's an example using NPM's
  3. Use semver to specify the minimum version the typings are valid for in the registry - here's debug again
  4. Commit and run
    npm test
    to check that the registry is valid, make a pull request
  5. Once the pull request is merged, it will be used as the canonical reference -
    typings install debug


  • Typings requests are labelled with
    typings request
    in the issues
  • If you'd like to help review PRs to the registry, see #70 to help out
  • If you're wondering how to write tests for your typings, see #150
  • If you'd like to help collaborate on
    , see #480 so we can collaborate
  • If you'd like to lint your definitions, try

Creating Typings

  • Initialize a new repository (usually
    to differentiate from your other projects)
  • Use generator-typings to generate the project, or manually:
    • Create a
      file, set
      (and other valid options)
    • Make sure there's a license with your work
    • A README can help explain what people are looking at when they land on your repo


The registry uses subdirectories to denote "sources". These sources are essentially mappings to package managers, and contain either ambient or external module typings (depending on the "source").


Where "source" is one of:

  • npm for NPM dependencies (external)
  • github for Duo, JSPM, etc. that use GitHub as the registry (external)
  • bower for Bower dependencies (external)
  • common for "standard" JS libraries without a "source" (external)
  • shared for shared library functionality (external)
  • lib for shared environment functionality (global)
  • env for programming environment typings (global)
  • global for global libraries (global)

And "name" is the name of the package from the source. For GitHub and scoped NPM packages, it's valid to make a folder such as

. The schema for package files is described using JSON schema in


For typings issues, questions or general help, you can always open an issue in the discussions repo. To add an entry to the registry, please open a pull request with the change.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.