【发布时间】:2019-01-18 19:38:48
【问题描述】:
我最初有以下项目结构(monorepo)
_app/
_firebase/
_types/
tsconfig.json
这里,根级别的 tsconfig 用于 _app 和 _firebase 打字稿项目。 _types 是一个包含models.ts、store.ts 等文件的文件夹……这些文件只是定义了不同的接口。
我能够使用这些接口,而无需在 _app 和 _firebase 项目中导入/导出任何东西之前没有任何问题。
我进行了更改以使用 typescripts v3 项目引用,所以我的应用程序结构现在看起来像这样
_app/
tsconfig.json
_firebase/
tsconfig.json
_types/
tsconfig.json
根级别tsconfig.json 有以下内容
{
"compilerOptions": {
"composite": true
},
"references": [
{
"path": "_app"
}
]
}
其他配置只有简单的选项,例如outDir、target、lib 等...
现在,如果我在_app 或_firebase 的任何位置使用_types 文件夹中的接口,我会收到类似的错误
[ts] 找不到名称“IInventoryModel”。
有什么方法可以保留以前的功能,无需显式导出/导入即可使用这些接口,同时仍能利用新项目的引用功能?
编辑:这里是 _app 的 tsconfig 示例
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"lib": ["es2016"],
"jsx": "react",
"outDir": "./dist",
"strict": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
}
}
_types 文件夹内的 EDIT 2 接口声明如下,即 _types/models.ts 具有
interface ICharacterModel { /* ... */ }
interface IInventoryModel { /* ... */ }
// etc...
【问题讨论】:
标签: reactjs typescript tsconfig