VS17 Resharper 抱怨 React.Component

VS17 Resharper Complaining about React.Component

我已经在使用 TypeScript 编写 React 组件代码的 .Net Core Web 应用程序上启用了 Resharper Ultimate。

所以我有一个简单的组件class;

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 代码,那将会很烦人。

有人知道解决这个问题的方法吗?

目前的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 语言支持。这很好用。

在 VisualStudio 2019 / Resharper 2019.1 中,您现在可以在 JS 文件中启用 JSX 语法。您可以按照以下步骤执行此操作:

Extensions - Resharper - Options - JavaScript - Inspections - Enable JSX syntax in JS files: Always

我也将 JavaScript 语言级别更改为 ECMAScript 2016,但我认为没有必要。