Javascript 使用redux connect函数会丢失我的IDE中的类信息(PhpStorm/WebStorm)

Javascript 使用redux connect函数会丢失我的IDE中的类信息(PhpStorm/WebStorm),javascript,typescript,redux,phpstorm,webstorm,Javascript,Typescript,Redux,Phpstorm,Webstorm,使用redux中的connect函数似乎会使我的IDE(PhpStorm)失去在类上“查找用法”的能力。我假设因为connect返回any,所以从SomeClass.ts导入SomeClass会丢失该文件中的类型信息 导出默认连接(mapStateToProps)(SomeClass) 从redux文档: 它不会修改传递给它的组件类;相反,它返回一个新的、连接的组件类供您使用 但我希望我的IDE将其视为我的原始类/组件,因此它具有所有类型信息 我发现解决这个问题的一种方法是使用带有@connec

使用redux中的connect函数似乎会使我的IDE(PhpStorm)失去在类上“查找用法”的能力。我假设因为
connect
返回
any
,所以
从SomeClass.ts导入SomeClass
会丢失该文件中的类型信息

导出默认连接(mapStateToProps)(SomeClass)

从redux文档:

它不会修改传递给它的组件类;相反,它返回一个新的、连接的组件类供您使用

但我希望我的IDE将其视为我的原始类/组件,因此它具有所有类型信息

我发现解决这个问题的一种方法是使用带有
@connect
的注释,但这需要我将
mapstatetops
mapsdispatchtoprops
函数放在类的上方。我更喜欢保持我的类文件相当干净,类位于文件的最顶端

这使得
块作用域变量“mapSateToProps”在其声明之前使用
从“react redux”导入{connect}

@connect(mapStateToProps)
class TestClass {

}

const mapStateToProps = (state, props) => {

}
是否有一种方法可以让我使用connect,将类类型信息保留在IDE中,并将
MapStateTops
作为静态函数放在类下面或类内部?还是同一文件中的其他地方


我使用的是TypeScript&Babel。

您可以将
mapstatetops
作为函数来编写,因为在使用
函数
关键字时,声明是

e、 g


哦,是的,就是这样。非常感谢。我想我没有想到这一点,因为
mapDispatchToProps
是一个对象,但看起来我可以使用它的函数版本。
function mapStateToProps(state: TypeOfYourRootStore, props: TypeOfYourComponentsProps) {}