我在配置mocha以支持我的typescript代码时遇到了问题。我在项目根目录的src
文件夹中的global.d.ts
中定义了一些类型。
当我运行mocha -r ts-node/register test/**/*.ts
时,我收到以下错误:
TSError: ⨯ Unable to compile TypeScript:
src/mediator/index.ts:5:28 - error TS2304: Cannot find name 'DomainEvent'.
5 [key: string]: (event: DomainEvent) => Promise<void>
~~~~~~~~~~~
src/mediator/index.ts:11:57 - error TS2304: Cannot find name 'DomainEvent'.
11 registerHandler(eventType: string, handler: (event: DomainEvent) => Promise<void>) {
~~~~~~~~~~~
src/mediator/index.ts:18:37 - error TS2304: Cannot find name 'IntegrationEvent'.
18 async publish(integrationEvent: IntegrationEvent) {
字符串
当我运行ts-node ./src/app.ts
时,应用程序运行正常。有人知道我做错了什么吗?
我的tsconfig(我怀疑问题与此有关):
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"noImplicitAny": false,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"@mediator": ["src/mediator"],
"*": [
"node_modules/*"
]
},
"typeRoots": [
"./global"
]
},
"include": [
"**/*.ts"
]
}
型
2条答案
按热度按时间0vvn1miw1#
将您
global.d.ts
包含在tsconfig.json
中:字符串
vs3odd8k2#
@acrazing非常接近,对我来说有效的是将其添加到tsconfig.json:
字符串
注意:通配符/globbing不起作用,只能给出单个文件:(
然而,这会破坏eslint,因为它现在认为 * 只有这个文件 * 应该包含在linting中...因此,如果使用
eslint
,它可能不是一个完整的解决方案。