I am trying to get my first TypeScript and DefinitelyTyped Node.js application up and running, and running into some errors.
I am getting the error \"TS2304: Cannot
If you just have one file using require, or you're doing this for demo purposes you can define require at the top of your TypeScript file.
declare var require: any
If you are using TypeScript 2.x you no longer need to have Typings or Definitely Typed installed. Simply install the following package.
npm install @types/node --save-dev
The Future of Declaration Files (6/15/2016)
Tools like Typings and tsd will continue to work, and we’ll be working alongside those communities to ensure a smooth transition.
Verify or Edit your src/tsconfig.app.json so that it contains the following:
...
"types": [ "node" ],
"typeRoots": [ "../node_modules/@types" ]
...
Make sure is the file in the src folder and no the one on the root app folder.
By default, any package under @types is already included in your build unless you've specified either of these options. Read more
Using typings (DefinitelyTyped's replacement) you can specify a definition directly from a GitHub repository.
Install typings
npm install typings -g --save-dev
Install the requireJS type definition from DefinitelyType's repo
typings install dt~node --save --global
If you are using Webpack as your build tool you can include the Webpack types.
npm install --save-dev @types/webpack-env
Update your tsconfig.json with the following under compilerOptions:
"types": [
"webpack-env"
]
This allows you to do require.ensure and other Webpack specific functions.
With CLI you can follow the Webpack step above and add the "types" block to your tsconfig.app.json.
Alternatively, you could use the preinstalled node types. Keep in mind this will include additional types to your client-side code that are not really available.
"compilerOptions": {
// other options
"types": [
"node"
]
}