参数 'dispatch' 隐式具有 'any' 类型

Posted

技术标签:

【中文标题】参数 \'dispatch\' 隐式具有 \'any\' 类型【英文标题】:Parameter 'dispatch' implicitly has an 'any' type参数 'dispatch' 隐式具有 'any' 类型 【发布时间】:2018-09-23 06:47:08 【问题描述】:

我最近将基于 JS 的项目更改为 TypeScript。我正在关注 lint 问题,但我不知道 dispatch 的类型是什么。我想知道它是什么?

我知道我可以通过 tsconfig 文件中的"noImplicitAny": false 告诉 tslint 忽略此检查。但是,我不确定这是不是这样做的好方法。

【问题讨论】:

dispatch 是一个函数 @Tony,啊,你是对的。谢谢。如何摆脱错误信息? (dispatch: Dispatch<S>) => 我想?我不使用 TypeScript 【参考方案1】:

调度是defined in @types/react-redux as

type Dispatch<S> = Redux.Dispatch<S>;

当我过去遇到此错误消息时,我只需要安装@types/react-redux 包。

您可能会发现许多项目不包含类型文件。幸运的是,存在 NPM 上的 @types 包。它们由社区维护https://github.com/DefinitelyTyped/DefinitelyTyped

【讨论】:

感谢您的回答。我确认我的devDependencies 下有"@types/react-redux": "^5.0.16", 并得到上述错误。但是,DefinitelyTyped 对我来说是新的。感谢分享。 您也许可以在第 8 行将 Dispatch 类型与 connect 一起导入,并将 161 上的下划线文本更新为 dispatch: Dispatch 这是一个不错的技巧,但 linter 要求为 Dispatch 指定一个泛型。如果我给它 Dispatch 它可以工作,但我不确定泛型应该是什么。 当指定 mapDispatchToProps 函数可能是什么时,它看起来像 the typings use Dispatch&lt;any&gt;。最好将mapDispatchToProps 的类型声明为MapDispatchToPropsFunction,并允许编译器推断dispatch 的类型。 MapDispatchToPropsFunction 是具有TDispatchPropsTOwnProps 的泛型,分别对应mapDispatchToProps 返回类型和组件的props。【参考方案2】:

为了更清楚,下面应该是代码sn-p。

import  Dispatch  from 'redux';

//..... code
//..... code

const mapDispatchToProps = (dispatch: Dispatch) => bindActionCreators(
    // assignment here
);

【讨论】:

以上是关于参数 'dispatch' 隐式具有 'any' 类型的主要内容,如果未能解决你的问题,请参考以下文章

元素隐式具有'any'类型,因为类型的表达式

错误:参数“e”隐式具有“任何”类型。 TS7006 - 反应打字稿

参数隐式具有“任何”类型

对象文字的属性 'children' 隐式具有 'any[]' 类型

映射打字稿参数:绑定元素“列”隐式具有“任何”类型

如何修复绑定元素'children'隐式具有'any' type.ts(7031)?