8

I'm working on a Node JS (+Express) project in Visual Studio Code, and am wondering if there is a way to reference TypeScript definitions in one global spot, rather than having to re-reference definitions in every JS file.

I see that VSCode supports tsconfigs, but I don't think .tsconfig files have a section for that.

russjr08
  • 881
  • 1
  • 8
  • 16
  • 1
    Generally external tools which only use `tsc` require that you include a reference at the top of every file. Visual Studio has a feature which does this automatically, but I'm not sure if this is included in "Code" – CodingIntrigue Apr 30 '15 at 18:17
  • see answer: http://stackoverflow.com/a/40861142/187650 – juFo Nov 29 '16 at 08:37

2 Answers2

9

In some editors you can use the filesGlob property in tsconfig.json to simplify references.

For example:

"filesGlob": [
    "./scripts/*.ts",
    "!./node_modules/**/*.ts"
]

However, this will work with the TypeScript compiler only when TypeScript 2 is released (see globs):

Or you can specify individual files:

"files": [
    "./scripts/app.ts",
    "./scripts/other.d.ts"
]
Fenton
  • 241,084
  • 71
  • 387
  • 401
  • 1
    I did **not** know about this. I need to put this into IntelliJ *right now*. Thanks! – CodingIntrigue May 01 '15 at 07:57
  • It appears Visual Studio Code does support a tsconfig.json file. http://blogs.msdn.com/b/typescript/archive/2015/04/30/using-typescript-in-visual-studio-code.aspx – Jon May 01 '15 at 15:26
  • 1
    Yes - but not filesGlob yet, so you have to specify files instead. – Fenton May 01 '15 at 16:47
  • 1
    if you leave files undefined (or omit it) then all files are included. much easier if you want them all, until globs are included – John Papa May 03 '15 at 20:48
1

Okay so after a couple of restarts with Code, it seems that most of the time it will pick up the typescript definitions that you've included in other files.

I think I'll still go with Steve's answer though, as that way I can avoid having a bunch of references in my code.

russjr08
  • 881
  • 1
  • 8
  • 16