Javascript 使用redux connect函数会丢失我的IDE中的类信息(PhpStorm/WebStorm)
使用redux中的connect函数似乎会使我的IDE(PhpStorm)失去在类上“查找用法”的能力。我假设因为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
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) {}