尝试导入错误:未从“ ../module”导出“模型”

卡夏诺

即使VS Code正确解析了模块,Typescript react app也始终无法导入接口定义。

我使用了基于swagger规范的openapi代码生成器,使用create-react-app和REST客户端构建了一个typescript react应用。

然后,我将应用程序中生成的接口定义用作类型定义。

但是,由于某种原因,我始终无法始终导入这些定义。

我已经尝试删除node_modules和npm install

显示问题的文件(ModelProxy.ts):

import { Model } from '../generated'

生成的模块index.ts文件:

export * from './models'

模型模块的index.ts文件:

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以进行a​​pi调用并隔离自动生成的代码。这种模式已经运行了一段时间了。

令我惊讶的是,Visual Studio Code很好地解析了类型定义。但是,该应用程序无法生成。

构建因错误而失败:

./src/api/proxies/ModelProxy.ts
Attempted import error: 'Model' is not exported from '../api'.

我出于机密原因更改了文件名。

卡夏诺

对于遇到相同问题的任何人,我认为openapi代码生成器版本4.0.0(SNAPSHOT构建于2019年11月11日)使用命名空间生成打字稿代码,以模拟枚举的接口内部的静态字段,如下所示:

interface Pet {
  status: Pet.StatusEnum
  ...
}

// later in the file ...

export namespace Pet {
  export enum StatusEnum {
    Available = 'available',
    Pending = 'pending',
    Sold = 'sold'
  }
}

Babel不支持该功能,这是导致错误的原因。

对我而言,解决方法是手动编辑文件,以使用其他名称导出枚举,例如PetStatusEnum在示例中,完全放弃命名空间。像这样:

interface Pet {
  status: PetStatusEnum
  ...
}

// later in the file ...

export enum PetStatusEnum {
  Available = 'available',
  Pending = 'pending',
  Sold = 'sold'
}

OpenAPI维护人员正在尝试解决此问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试导入错误:未从“ antd”导出“ Typography”

尝试导入错误:未从“ antd”导出“ Icon”

尝试导入错误:“createstore”未从“redux”导出

反应错误“尝试导入错误:'TodoItem'未从'./Todoitem'导出。”

尝试导入错误:“ showErrorMessage”未从“ ../helpers/alerts”导出

尝试导入错误:“useThemeVariants”未从“@material-ui/styles”导出

尝试导入错误:未从“ ../assertThisInitialized/_index.mjs”导出“默认”

尝试导入错误:未从“ ./components/SelectionPage”导出“ SelectionPage”

尝试导入错误:未从“ d3”导出“行为”

尝试导入错误:“出口”未从“react-router-dom”导出

尝试导入错误:未从“ react-router-dom”导出“ useRouteMatch”

尝试导入错误:未从文件中导出“ SomeObject”

尝试导入错误:未从“ react-redux”导出“ useDispatch”

尝试导入错误:未从“ react-intl”导出“ addLocaleData”

尝试导入错误:未从“ react-router-dom”导出“ PrivateRoute”

尝试导入错误:未从“ react-router-dom”导出“ useHistory”

尝试导入错误:“_”未从“下划线”导出

尝试导入错误:“动画”未从“react-spring”导出

尝试导入错误:“路由”未从“react-router-dom”导出

尝试导入错误:“查询”未从“firebase/firestore”导出

尝试导入错误:“configureStore”未从“./app/store”导出

尝试导入错误:“ BrowseRouter”未从“ react-router-dom”导出(导入为“ Router”)

尝试导入错误:未从“三个”(导入为“三个”)导出“ OBJLoader”

尝试导入错误:将“react-scripts”更新到版本 2.0.0 后,“...”未从“...”错误导出

如何解决错误:尝试导入错误:“路由”未从“ react-router-dom”导出

尝试导入错误:未从“ ./actions”导出“ getMoviesList”;React Redux中的错误

错误尝试导入错误:“NotificationsNoneIcon”未从“@material-ui/icons”导出

尝试导入错误:“useTranslation”未从“react-i18next”导出

尝试导入错误:未从'@ material-ui / core / utils'导出'useControlled'