Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Importing node and express with typings in TypeScript

Tags:

I am trying to set up a TypeScript express/node application in Visual Studio Code following the Microsoft guide but changing it to use TypeScript however when it comes to installing the type definitions using typings I seem to have to install more packages than the guide.

I'm running the following pair of commands:

typings install node --ambient --save typings install express --ambient --save 

However attempting to build with just those packages gives the following type of error:

error TS2307: Cannot find module 'serve-static'. 

For the following typings:

  • mime
  • express-serve-static-core
  • serve-static

I can resolve this by installing the required typings but it seems like something typings should do by itself.

I wanted to check if I was missing a fundamental step to automatically pull in dependencies or whether the guide was outdated?

In case it's relevant, my tsconfig.json:

{     "compilerOptions": {         "target": "es5",         "module": "commonjs",         "sourceMap": true,         "outDir": "bin",         "sourceRoot": "src"     },     "exclude": [         "node_modules",         "typings/browser.d.ts",         "typings/browser"     ] } 

My tsc is version 1.8.7 and I have typescript installed globally.

like image 988
Underscore Avatar asked Mar 15 '16 13:03

Underscore


2 Answers

As of the release of TypeScript 2.0 last month, the recommended tool for installing typings is our trusty old friend npm instead of typings or tsd.

npm install @types/node --save 

With npm, there's no need to worry about "global" or "ambient" installations anymore.

You also don't need to worry about adding <reference> tags to the top of your source files anymore; just drop the following property into your compilerOptions in tsconfig.json, and the TypeScript compiler will automatically find the npm typings you've installed:

"typeRoots": [ "node_modules/@types" ] 

Here's a blog post that explains the change in some more detail: https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/

like image 120
Josh1billion Avatar answered Oct 16 '22 05:10

Josh1billion


The tutorial I linked has now been updated to include the following commands:

typings install node --ambient typings install express serve-static express-serve-static-core --ambient 

See @cdbajorin 's comment for information about why dependencies are not automatically downloaded.

like image 44
Underscore Avatar answered Oct 16 '22 07:10

Underscore