Reputation: 67300
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.
Upvotes: 8
Views: 4075
Reputation: 2636
Enable ts-node --files
option in tsconfig.json
like this:
{
"ts-node": {
"files": true
},
"compilerOptions": {
// ....
}
}
Further Reading:
Upvotes: 20