不能使用命名空间 'Boom' 作为类型
Cannot use namespace 'Boom' as a type
我正在为我的节点+打字稿项目之一使用hapi
。由于 "naked" 软件包已弃用,我正在尝试将 hapi
更新为新的 @hapi/hapi
软件包。我已将 @types/hapi
更改为 @types/hapi__hapi
。
我一更新,就开始收到 TypeScript 错误 -
node_modules/@types/hapi__hapi/index.d.ts:514:32 - error TS2709: Cannot use namespace 'Boom' as a type.
514 response: ResponseObject | Boom;
~~~~
node_modules/@types/hapi__hapi/index.d.ts:4050:18 - error TS2709: Cannot use namespace 'Boom' as a type.
4050 (Error | Boom) |
~~~~
Found 2 errors.
这是我在 package.json -
中的依赖项
{
...
"devDependencies": {
...
"@types/hapi__boom": "7.4.1",
"@types/hapi__hapi": "18.2.5",
"@types/hapi__joi": "16.0.1",
"@types/nock": "10.0.3",
"@typescript-eslint/eslint-plugin": "2.4.0",
"jest": "24.9.0",
"nock": "11.4.0",
"nodemon": "1.19.4",
"prettier": "1.18.2",
"typescript": "3.6.4"
},
"dependencies": {
...
"@hapi/boom": "8.0.1",
"@hapi/hapi": "18.4.0",
"@hapi/joi": "16.1.7",
"axios": "0.19.0",
"axios-retry": "3.1.2"
},
...
}
我检查了 node_modules/@types/hapi__hapi/index.d.ts
文件,它正在使用以下方式导入 Boom
-
import * as Boom from '@hapi/boom';
当我把它改成
import { Boom } from '@hapi/boom';
它解决了错误。
我无法更改 index.d.ts
文件,因为它来自 @types/hapi__hapi
包,但我想解决这个问题。我可以做些什么来避免出现此错误,例如降级到某个特定版本?
我检查了 @hapi/boom
and they included types in 7.x release which were breaking typescript build. They removed types from 7.x releases, but put them back in 8.x 的问题,因为我使用的是 @hapi/boom 8.0.1
,它与现有类型冲突。
所有的 hapi 生态系统都将在其中包含类型定义,但其他包没有更新来做到这一点(据我所知),因此在不破坏 TypeScript 构建的情况下解决这个问题的唯一方法是将 @hapi/boom
降级为 7.4.11
。
PS:我在发布问题几分钟后发现了 github 问题,但我仍然愿意寻求更好的答案,如果有的话。
我正在为我的节点+打字稿项目之一使用hapi
。由于 "naked" 软件包已弃用,我正在尝试将 hapi
更新为新的 @hapi/hapi
软件包。我已将 @types/hapi
更改为 @types/hapi__hapi
。
我一更新,就开始收到 TypeScript 错误 -
node_modules/@types/hapi__hapi/index.d.ts:514:32 - error TS2709: Cannot use namespace 'Boom' as a type.
514 response: ResponseObject | Boom;
~~~~
node_modules/@types/hapi__hapi/index.d.ts:4050:18 - error TS2709: Cannot use namespace 'Boom' as a type.
4050 (Error | Boom) |
~~~~
Found 2 errors.
这是我在 package.json -
中的依赖项{
...
"devDependencies": {
...
"@types/hapi__boom": "7.4.1",
"@types/hapi__hapi": "18.2.5",
"@types/hapi__joi": "16.0.1",
"@types/nock": "10.0.3",
"@typescript-eslint/eslint-plugin": "2.4.0",
"jest": "24.9.0",
"nock": "11.4.0",
"nodemon": "1.19.4",
"prettier": "1.18.2",
"typescript": "3.6.4"
},
"dependencies": {
...
"@hapi/boom": "8.0.1",
"@hapi/hapi": "18.4.0",
"@hapi/joi": "16.1.7",
"axios": "0.19.0",
"axios-retry": "3.1.2"
},
...
}
我检查了 node_modules/@types/hapi__hapi/index.d.ts
文件,它正在使用以下方式导入 Boom
-
import * as Boom from '@hapi/boom';
当我把它改成
import { Boom } from '@hapi/boom';
它解决了错误。
我无法更改 index.d.ts
文件,因为它来自 @types/hapi__hapi
包,但我想解决这个问题。我可以做些什么来避免出现此错误,例如降级到某个特定版本?
我检查了 @hapi/boom
and they included types in 7.x release which were breaking typescript build. They removed types from 7.x releases, but put them back in 8.x 的问题,因为我使用的是 @hapi/boom 8.0.1
,它与现有类型冲突。
所有的 hapi 生态系统都将在其中包含类型定义,但其他包没有更新来做到这一点(据我所知),因此在不破坏 TypeScript 构建的情况下解决这个问题的唯一方法是将 @hapi/boom
降级为 7.4.11
。
PS:我在发布问题几分钟后发现了 github 问题,但我仍然愿意寻求更好的答案,如果有的话。