12

我在使用 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

我用于反应的 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 代码,那将会很烦人。

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

4

2 回答 2

15

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

扩展 - Resharper - 选项 - JavaScript - 检查 - 在 JS 文件中启用 JSX 语法:总是

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

于 2019-05-31T08:37:36.657 回答
9

当前的 Resharper 版本 (2017.1) 仅支持 TypeScript 2.2。React 类型定义使用通用参数默认值,这是 TypeScript 2.3 的一项功能,Resharper 2017.1 无法正确识别。Resharper 2017.2(目前在 EAP 中)将支持 TypeScript 2.4。

同时,我刚刚关闭了 Resharper 的 JavaScript/TypeScript 支持(通过 Resharper => Options => Products and Features)并使用 VS TypeScript 语言支持。这工作正常。

于 2017-08-16T10:09:22.197 回答