Reactjs 尝试导入错误:';型号';不是从';导出的/模块';
Typescript react应用程序不一致地无法导入接口定义,即使VS代码正确解析了模块 我用createreact应用程序和REST客户端构建了一个typescriptreact应用程序,使用基于swagger规范的openapi代码生成器 然后,我在应用程序中使用生成的接口定义作为类型定义 然而,由于某些原因,我不能时不时地导入这些定义中的一个 我已经尝试删除节点模块和Reactjs 尝试导入错误:';型号';不是从';导出的/模块';,reactjs,typescript,openapi-generator,Reactjs,Typescript,Openapi Generator,Typescript react应用程序不一致地无法导入接口定义,即使VS代码正确解析了模块 我用createreact应用程序和REST客户端构建了一个typescriptreact应用程序,使用基于swagger规范的openapi代码生成器 然后,我在应用程序中使用生成的接口定义作为类型定义 然而,由于某些原因,我不能时不时地导入这些定义中的一个 我已经尝试删除节点模块和npm安装 显示问题的文件(ModelProxy.ts): 生成的模块index.ts文件: export * from
npm安装
显示问题的文件(ModelProxy.ts):
生成的模块index.ts文件:
export * from './models'
export * from './Model'
模型模块index.ts文件:
export * from './models'
export * from './Model'
Model.ts文件:
export interface Model {...
简化的文件结构:
| src
| - api
| - - proxies
| - - - index.ts
| - - - ModelProxy.ts
| - - generated
| - - - index.ts
| - - - models
| - - - - index.ts
| - - - - Model.ts
我从React组件导入ModelProxy以进行api调用并隔离自动生成的代码。这种模式现在已经运行了一段时间了
令我惊讶的是,VisualStudio代码很好地解析了类型定义。但是,应用程序没有生成
生成失败,出现错误:
./src/api/proxies/ModelProxy.ts
Attempted import error: 'Model' is not exported from '../api'.
出于保密原因,我更改了文件名 对于遇到相同问题的任何人,我认为openapi代码生成器版本4.0.0(SNAPSHOT Build 01/11/2019)使用名称空间生成typescript代码,以模拟枚举接口内的静态字段,如下所示:
interface Pet {
status: Pet.StatusEnum
...
}
// later in the file ...
export namespace Pet {
export enum StatusEnum {
Available = 'available',
Pending = 'pending',
Sold = 'sold'
}
}
,错误的原因是什么
对我来说,修复方法是手动编辑文件,以不同的名称导出枚举,如示例中的PetStatusEnum
,并完全放弃名称空间。像这样:
interface Pet {
status: PetStatusEnum
...
}
// later in the file ...
export enum PetStatusEnum {
Available = 'available',
Pending = 'pending',
Sold = 'sold'
}
OpenAPI维护人员正试图解决这一问题 我在尝试从
node\u模块构建一些typescriptsrc
时遇到了同样的问题
Plugin@babel/Plugin transform modules commonjs
帮助了我。这个问题得到了解决。枚举现在导出到命名空间之外。