So far we are used to tsd or (The better version of it) typings
But now that TypeScript 2 offers the new @types
feature, how should I convert my current project to work with @types?
I have tsd.json (typings.json is some cases) with all the dependencies, what are the steps to do the move to TypeScript 2?
What are the new best practices? Does @types support specific versions?
It's very simple. Just install the definitions that you need via npm.
For example if you need lodash you can do:
npm install --save @types/lodash
Once it's installed you can use it right away in your project. Typescript will resolve the typings for the installed @types package from the node_modules/@types folder by default. There's no need for a tsd.json or typings.json file anymore.
Additional points:
typeRoots
and types
here. Specifically pay attention to these two points:
typeRoots
is specified in tsconfig.json, then only specified folders will be used for the type roots. That will exclude ./npm_modules/@types/ unless you specify it.types
is specified in tsconfig.json, then only the packages specified will be included.Read more in the blog post here.