7

When I run ts-node node_modules/jasmine/bin/jasmine I get these errors:

tsc/globals.ts:7:12 - error TS2304: Cannot find name 'SugarcubeState'.

7     State: SugarcubeState;
             ~~~~~~~~~~~~~~

Here is that global file:

/* eslint-disable @typescript-eslint/no-explicit-any */
console.log("global.ts");

// eslint-disable-next-line @typescript-eslint/no-namespace
declare namespace NodeJS {
  interface Global {
    State: SugarcubeState;
    setup: {};
  }
}

declare const State: SugarcubeState = {
  variables: {}
};

declare const setup: any = {
  variables: {}
};

Here is my index.d.ts:

type SugarcubeVariables = {
};

type SugarcubeState = { variables: SugarcubeVariables };

These are both in the same directory and Visual Studio code is not complaining about anything. Why can't ts-node seem to find my type definition files?

I googled this and found this website: https://github.com/TypeStrong/ts-node#missing-types Following its advice, i modified my tsconfig file to have a

"typeRoots": ["tsc"],                       /* List of folders to include type definitions from. */

in it, but it had no effect on the error. I also tried this:

    "types": ["tsc/index.d.ts"],                           /* Type declaration files to be included in compilation. */

But again, no difference in the errors I received. How do I get ts-node to recognize my .d.ts files?

PS: If you're wondering why I'm defining things this way, see this answer https://stackoverflow.com/a/43523944/61624


I reread that link and it appears that I need to have a very specific directory structure. The problem is, it says I need but the module name in this directory structure, and given the way I wrote my index.d.ts, i have no idea what to name this directory.

mjarosie
  • 3,228
  • 2
  • 20
  • 31
Daniel Kaplan
  • 62,768
  • 50
  • 234
  • 356
  • DId you get anywhere with this @Daniel? I am currently going insane around ts-node and custom declaration files... there are no clear answers anywhere – theFlyingCoder Jul 23 '20 at 02:02
  • **See Also**: [ts-node ignores d.ts files while tsc successfully compiles the project](https://stackoverflow.com/q/51610583/1366033) – KyleMit Nov 27 '21 at 19:27

1 Answers1

17

Enable ts-node --files option in tsconfig.json like this:

{
  "ts-node": {
    "files": true
  },
  "compilerOptions": {
    // ....
  }
}

Further Reading:

KyleMit
  • 30,350
  • 66
  • 462
  • 664
mindlid
  • 1,679
  • 14
  • 17