InversifyJS + TypeScript + Ejected CRA:使用接口导入文件的问题

InversifyJS + TypeScript + Ejected CRA: issues with importing files with interfaces

此处提供代码:https://github.com/rtrocca/test-inversify-cra

我使用 CRA 和 TypeScript 模板创建了一个简单的 React 应用程序并弹出了该应用程序。

然后我为 Ninja/Katana/Shuriken 示例添加了文件。

我还修改了babel和typescript的配置:

tsconfig.json

"experimentalDecorators": true,
"emitDecoratorMetadata": true

并在 lib 部分添加了“es6”。

对于 Babel,更改位于 package.json 文件的 babel 部分:

"plugins": [
      "babel-plugin-transform-typescript-metadata",
      [
        "@babel/plugin-proposal-decorators",
        {
          "legacy": true
        }
      ],
      [
        "@babel/plugin-proposal-class-properties",
        {
          "loose": true
        }
      ]
    ]

然后我 运行 npm start 得到了一个“惊喜”: 虽然 Babel 可以构建代码并且它可以工作,但 tsc 会生成以下错误:

Compiled with problems:

ERROR in ./src/di/entities.ts 25:108-114
export 'Weapon' (imported as 'Weapon') was not found in './interfaces' (module has no exports)

ERROR in ./src/di/entities.ts 25:142-148
export 'Weapon' (imported as 'Weapon') was not found in './interfaces' (module has no exports)

ERROR in ./src/di/entities.ts 25:157-172
export 'ThrowableWeapon' (imported as 'ThrowableWeapon') was not found in './interfaces' (module has no exports)

ERROR in ./src/di/entities.ts 25:200-215
export 'ThrowableWeapon' (imported as 'ThrowableWeapon') was not found in './interfaces' (module has no exports)

我找不到解决此问题的方法。 有什么提示吗? 我没有尝试使用 craco & c。因为似乎所有这些工具都越来越少了。

谢谢。

最后我找到了问题所在。这些警告类似于 https://javascript.plainenglish.io/leveraging-type-only-imports-and-exports-with-typescript-3-8-5c1be8bd17fb 中描述的内容。 换句话说,只包含类型定义的 TypeScript 文件被删除,但导入仍然存在。解决方案,因为 TypeScript 3.8 是使用 import type