Issue
I have defined some global interfaces as follows in top level of the project:
globaltypes.ts
declare global {
my_interface {
name:string
}
}
But when i try to compile with ts-node, the compiler fails to compile with
"cannot find name "my_interface" ... diagnostic code "2304"".
My IDE recongizes the types as global, giving me autocomplete, but how do i get the compiler to do so also such that i can build the project?
tsconfig:
{
compilerOptions {
target: "ES2020"
module: "commonjs"
moduleResolution: "node"
baseUrl: "./"
allowjs: true
allowSyntheticDefaultImports: true
esModuleInterop: true
forceConsistentCasingInFileNames:true
strict: true
typeRoots: ["./"]
skipLibCheck: true
}
"exclude": ["node_modules", "./build/**/*"],
"include": ["./**/*.ts"]
}
If i move the interface declaration into my main.ts file it works fine. I would rather not do this however as i want to access the interface elsewhere also, preferably without importing it.
Solution
You need either remove declare global
and import
this type or you need to define it in file with .d.ts
extension (see ambient declarations).
https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules https://basarat.gitbook.io/typescript/type-system/intro/d.ts
Answered By - OwnageIsMagic
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.