我们再来一次,另一个月和另一个Resharper更新,在使用Node Modules和@types
时似乎打破了TypeScript中的所有内容我正在使用TypeScript,React和Redux,因此使用npm包redux-actions
和@types/redux-actions
我的代码如下:
const pageReducer = handleActions<IPageState, number | string>({
[actionTypes.doSomething]: (state: IPageState, action: Action<string>): IPageState => {
// some code to manipulate the state
return {}; // returning the manipulated state
},
[actionTypes.doSomethingElse]: (state: IPageState, action: Action<number>): IPageState => {
// some code to manipulate the state
return {}; // returning the manipulated state
}
}, initialState()); // initial state function which returns initial state object
IPageState
是一个具有各种属性的接口。
所有内容都通过webpack进行编译和捆绑,并像魅力一样运行,因此代码没有任何问题。过去两年我们一直在使用这种模式,并且工作正常。
然而,最新的Resharper更新(2017.3版),它现在抱怨handleActions<IPageState, number | string>
无类型函数调用可能不接受类型参数
我注意到Resharper似乎正在调查文件/node_modules/redux-actions/lib/index.js
以获取所有内容的定义,而不是查看/node_modules/@types/redux-actions/index.d.ts
文件。因此,如果我删除lib
文件夹,则所有Resharper错误都会消失。
有没有告诉Resharper忽略lib
文件夹?我不能删除它,因为在进行全新安装时,文件夹将重新出现。
答案 0 :(得分:1)
我有同样的问题。到目前为止,我发现它的唯一方法是在我的一个反应组件的顶部为类型定义添加一个三重斜杠指令(我将它放在app.tsx中,这是我的应用程序的主要反应组件),例如
/// <reference path="./../../node_modules/@types/react/index.d.ts"/>
将其添加到源中的单个文件似乎足以修复项目范围内的错误R#错误。不理想,我不知道为什么它应该工作,但它似乎已经解决了我的问题到目前为止。
答案 1 :(得分:0)
这被称为Resharper中的一个错误,现在已经修复。 https://youtrack.jetbrains.com/issue/RSRP-467712
如果您下载最新版本的Resharper,问题现已解决。