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#help-my-types-are-missing 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.
json (recommended) ts-node automatically finds and loads tsconfig. json . Most ts-node options can be specified in a "ts-node" object using their programmatic, camelCase names.
No you shouldn't use it in production, even though it will cache the compiled files it'll be slower to start and consume more memory because it keeps around an instance of the compiler and files in memory.
TS-Node is a Node. js package that we can use to execute TypeScript files or run TypeScript in a REPL environment. To compile and run TypeScript directly from the command line, we need to install the compiler and ts-node globally.
ts-node is a TypeScript execution engine and REPL for Node. js. It JIT transforms TypeScript into JavaScript, enabling you to directly execute TypeScript on Node. js without precompiling. This is accomplished by hooking node's module loading APIs, enabling it to be used seamlessly alongside other Node.
Enable ts-node --files
option in tsconfig.json
like this:
{
"ts-node": {
"files": true
},
"compilerOptions": {
// ....
}
}
Further Reading:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With