Underscore
Underscore

Reputation: 1057

Importing node and express with typings in TypeScript

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:

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.

Upvotes: 23

Views: 16565

Answers (3)

Josh1billion
Josh1billion

Reputation: 14927

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/

Upvotes: 31

Will Munn
Will Munn

Reputation: 7967

to save everyone a headache, the magic command to get the typings for node is now:

typings install node --source env --global --save

Upvotes: 2

Underscore
Underscore

Reputation: 1057

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.

Upvotes: 8

Related Questions