Using TSD for Typescript Definitions

This is an older post published on my blog on Jan 20 2015, I’m moving a few posts over here.

What is TSD?

I’ll be going through this as if you’re in Visual Studio as that’s where I was doing it. It’ll translate fine to the terminal though, just ignore any references to the package management console.

Note: When I was setting this up with version 0.5.7 I didn’t have some of the required commands. I needed to the get the next version which was pre-rekease, I had to run:

I don’t imagine this will be the situation for long though.

Let’s get started

  1. You’ll need to install TSD globally so start of with: npm install tsd -g
  2. Navigate to your project folder as you would with a command prompt or it’s going to stick these files into you solution root.
  3. Run the following to get the json file that is going to hold your configuration: tsd init
  4. Now we can take a look inside of our empty (ish) tsd.json file:
  • Repo is going to set where it gets the typings from and ref is the branch. TSD is basically pulling from a github repo.
  • Path is where we’re going to output out typings to.
  • Bundle is a nice file created with all of the reference paths added for your typings. This is going to save you adding them to the top of your typescript files like a caveman :P.
  • Installed is going to list our definitions and the commit hash so we always get the same file, we can update them if we need to later.
  1. If you want to query to see if a package is available: tsd query angular
  2. Cool, it’s in there! Lets do a: tsd install angular -r -o -s
  • -r is resolve, this is going to grab dependencies.
  • -o is overwrite, It’ll go over the top of any files already existing.
  • -s is save, this will save the tsd.json file.
  1. Go check out your tsd.json file. You’ll see your dependencies. Also go have a look at the file you specified for bundle too.
  2. We can also add a grunt step to reinstall from this file:
grunt.initConfig({ 
tsd: {
refresh: {
options: {
// execute a command
command: ‘reinstall’,
// optional: always get from HEAD
latest: true,
// specify config file
config: ‘../conf/tsd.json’,
// experimental: options to pass to tsd.API
opts: {
// props from tsd.Options
}
}
}
}
})

You’ll need to install this, I just added “”grunt-tsd”: “~0.2.0”” to my package.json file and let npm grab it. Also add: “grunt.loadNpmTasks(‘grunt-tsd’);” to your gruntfile.js.

That wraps it up, hopefully this saves you some time going back and forth to DefinitelyTyped.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store