Short Answer
VS Code ignores your tsconfig.json
when you use a newer version of TypeScript than the one that VS Code provides out of the box.
You are using TypeScript 2.0.0-dev.20160707
, so that is probably what is happening.
How to use a newer TypeScript version in VS Code
First, install TypeScript into your node_modules
. Choose stable or nightly.
npm install typescript --save-dev // stable
npm install typescript@next --save-dev // nightly
Second, add the resultant lib
relative path to your settings.json
. That is, open settings.json
in VS Code via File > Settings > User Settings, and add the following property.
{
"typescript.tsdk": "node_modules/typescript/lib"
}
Note, if you installed TypeScript globally (-g
) instead of into your project’s node_modules
, then adjust your typescript.tsdk
location appropriately.
Third, make sure you have a valid tsconfig.json
. Here is an example.
{
"compileOnSave": false,
"compilerOptions": {
"sourceMap": true,
"target": "es5",
"experimentalDecorators": true,
"noImplicitAny": false
},
"exclude": [
"node_modules"
],
"filesGlob": [
"src/**/*.ts",
"test/**/*.ts",
"typings/index.d.ts"
]
}
Documentation
VS Code ships with a recent stable version of TypeScript in the box. If you want to use a newer version of TypeScript, you can define the typescript.tsdk setting (File > Preferences > User/Workspace Settings) pointing to a directory containing the TypeScript tsserver.js and the corresponding lib.*.d.ts files. The directory path can be absolute or relative to the workspace directory. By using a relative path, you can easily share this workspace setting with your team and use the latest TypeScript version (npm install typescript@next). Refer to this blog post for more details on how to install the nightly builds of TypeScript. (emphasis added).
See also: https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/