我想拥有一个全局可用的变量(不导入)User
,以便以后可以在任何文件中进行User.findById()
。
我有一个User.ts
文件,其中包含:
interface UserInstance{
...
}
interface UserClass {
findById(id:number):UserInstance
...
}
declare const User: UserClass
我期望在另一个文件(比如UserService.ts
)中,我可以做User.findById(1)
(不导入),但是我得到TS 2304: Cannot find name 'User'
。
我的tsconfig.json
是
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": false,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*",
"types/*"
]
}
},
"include": [
"api/**/*",
"tests/**/*"
]
}
User.ts
位于api/models
中,因此我假设TypeScript编译器在编译UserService.ts
中的api/services
时会看到它。
我是TypeScript的新手,是否有可能使全局变量不是来自模块?
谢谢!
答案 0 :(得分:0)
您只需要export
他们:export const User: UserClass
,然后导入您想使用它的位置
答案 1 :(得分:0)
我正在寻找的是:
declare global {
const User: UserClass;
}
此外,我最初将其添加到文件夹globals.d.ts
的{{1}}中,但是根据我的types
,它需要位于tsconfig.json
列表中的文件夹中