参数 '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 指定一个泛型。如果我给它 DispatchmapDispatchToProps
函数可能是什么时,它看起来像 the typings use Dispatch<any>
。最好将mapDispatchToProps
的类型声明为MapDispatchToPropsFunction
,并允许编译器推断dispatch
的类型。
MapDispatchToPropsFunction
是具有TDispatchProps
和TOwnProps
的泛型,分别对应mapDispatchToProps
返回类型和组件的props。【参考方案2】:
为了更清楚,下面应该是代码sn-p。
import Dispatch from 'redux';
//..... code
//..... code
const mapDispatchToProps = (dispatch: Dispatch) => bindActionCreators(
// assignment here
);
【讨论】:
以上是关于参数 'dispatch' 隐式具有 'any' 类型的主要内容,如果未能解决你的问题,请参考以下文章
错误:参数“e”隐式具有“任何”类型。 TS7006 - 反应打字稿