TypeScript 在导出接口后,智能感知停止工作,

ahy6op9u  于 6个月前  发布在  TypeScript
关注(0)|答案(1)|浏览(70)

🔎 搜索词

typescript, intellisense, interface, extends, react, create-react-app, svg

🕗 版本与回归信息

  • 该问题存在于4.9.5和5.4.5两个版本中
  • 自项目开始以来就存在这个问题,因为有问题的接口是首先被引入的

⏯ 活动链接

  • 无响应*

💻 代码

export interface SvgIcon {
  icon: React.FunctionComponent<
    React.SVGProps<SVGSVGElement> & {
      title?: string | undefined;
    }
  >;
}

export interface TileOption extends SvgIcon {
  readonly value: string;
  readonly label: string;
  readonly description: string;
}

🙁 实际行为

IntelliSense无限加载。

该问题也由所有团队成员共享。
在VSC和Webstorm上都发生了同样的事情。

🙂 预期行为

IntelliSense正常工作。

关于问题的附加信息:
不导出接口可以解决问题:

在settings.json中启用“on-save”时导出接口而不使用extends SvgIcon可以解决问题。

SvgIcon表示create-react-app设置生成的SvgReactComponents类型。

在VSC的settings.json中启用“on-save”时,此类型还使VSC陷入组织导入操作。然而,将导入组织切换到prettier-plugin-organize-imports解决了这个问题。
设置前:

"editor.codeActionsOnSave": {
  "source.fixAll.eslint": "explicit",
  "source.organizeImports": "explicit"
},

设置后:

"editor.codeActionsOnSave": {
  "source.fixAll.eslint": "explicit",
},

值得一提的是,在单独文件中导出接口扩展SvgIcon时没有问题。

k7fdbhmy

k7fdbhmy1#

我们需要一个可以克隆的仓库来展示行为,或者在这里提供完全指定的用户场景。除了代码片段之外,还有太多其他变量在起作用。

相关问题