Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 尝试导入错误:';型号';不是从';导出的/模块';_Reactjs_Typescript_Openapi Generator - Fatal编程技术网

Reactjs 尝试导入错误:';型号';不是从';导出的/模块';

Reactjs 尝试导入错误:';型号';不是从';导出的/模块';,reactjs,typescript,openapi-generator,Reactjs,Typescript,Openapi Generator,Typescript react应用程序不一致地无法导入接口定义,即使VS代码正确解析了模块 我用createreact应用程序和REST客户端构建了一个typescriptreact应用程序,使用基于swagger规范的openapi代码生成器 然后,我在应用程序中使用生成的接口定义作为类型定义 然而,由于某些原因,我不能时不时地导入这些定义中的一个 我已经尝试删除节点模块和npm安装 显示问题的文件(ModelProxy.ts): 生成的模块index.ts文件: export * from

Typescript react应用程序不一致地无法导入接口定义,即使VS代码正确解析了模块

我用createreact应用程序和REST客户端构建了一个typescriptreact应用程序,使用基于swagger规范的openapi代码生成器

然后,我在应用程序中使用生成的接口定义作为类型定义

然而,由于某些原因,我不能时不时地导入这些定义中的一个

我已经尝试删除节点模块和
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模块构建一些typescript
src
时遇到了同样的问题


Plugin
@babel/Plugin transform modules commonjs
帮助了我。

这个问题得到了解决。枚举现在导出到命名空间之外。