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
此处提供代码: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