VS17 Resharper 抱怨 React.Component
Posted
技术标签:
【中文标题】VS17 Resharper 抱怨 React.Component【英文标题】:VS17 Resharper Complaining about React.Component 【发布时间】:2018-01-19 20:21:50 【问题描述】:我已在使用 TypeScript 编写 React 组件的 .Net Core Web 应用程序上打开 Resharper Ultimate。
所以我有一个简单的组件类;
export class Index extends React.Component<,>
Resharper 警告我
Generic type '_$_$RsRpExt"FromFile;....\node_modules\@types\react\index.d.ts, module=javascriptReferencedFilesModule:Referenced external files".React.Component' requires 1 type argument(s), but got 2
我用于 react 的 npm 包是;
依赖关系:
"react": "^15.6.1",
"react-dom": "^15.6.1",
开发依赖
"@types/react": "^15.0.39",
"@types/react-dom": "^15.5.1",
查看输入的文件,我可以看到 React 组件应该接受 2 个参数:
interface Component<P = , S = > extends ComponentLifecycle<P, S>
class Component<P, S>
constructor(props?: P, context?: any);
我正在使用 webpack 编译 TS/TSX 文件,一切正常,项目也正常运行,但是如果 Resharper 不能很好地处理 TypeScript 代码,那将会很烦人。
有人知道解决这个问题的方法吗?
【问题讨论】:
【参考方案1】:在 VisualStudio 2019 / Resharper 2019.1 中,您现在可以在 JS 文件中启用 JSX 语法。您可以按照以下步骤执行此操作:
扩展 - Resharper - 选项 - JavaScript - 检查 - 在 JS 文件中启用 JSX 语法:总是
我还将 JavaScript 语言级别更改为 ECMAScript 2016,但我认为没有必要。
【讨论】:
非常有帮助。感谢您添加答案。 感谢您添加您的答案,这帮助我完美地摆脱了重新尖锐的错误。【参考方案2】:当前 Resharper 版本 (2017.1) 仅支持 TypeScript 2.2。 React 类型定义使用通用参数默认值,这是 TypeScript 2.3 的一项功能,Resharper 2017.1 无法正确识别。 Resharper 2017.2(目前在 EAP 中)将支持 TypeScript 2.4。
与此同时,我刚刚关闭了 Resharper 的 JavaScript/TypeScript 支持(通过 Resharper => 选项 => 产品和功能)并使用 VS TypeScript 语言支持。这很好用。
【讨论】:
啊谢谢你的信息。那我就坐等R# v2017.2吧。以上是关于VS17 Resharper 抱怨 React.Component的主要内容,如果未能解决你的问题,请参考以下文章