【问题标题】:Error: Unexpected any. Specify a different type. (Typescript Dispatch)错误:任何意外。指定不同的类型。 (打字稿派遣)
【发布时间】:2020-12-31 10:42:26
【问题描述】:

我的代码中不能有 any 作为类型,所以在 Dispatch<any> 的位置,我收到一条错误消息:Unexpected any。指定不同的类型。

当我输入<unknown> 只是为了查看它是否会停止出错时,我得到:类型“未知”不满足约束“操作”。

有谁知道 Dispatch 的类型是什么?

export function doSomething(options: doSomethingOptions): ActionCreator<AnyAction> {
  return (dispatch: Dispatch<any>): Action => {
    ............
  };
}

【问题讨论】:

  • 来自redux--> import { Action, Dispatch, AnyAction, ActionCreator } from 'redux';
  • 是的,我添加了它们,谢谢
  • 另外,@types 包有type definitions for various Redux packages,你安装过吗?
  • 我在 package.json 中看到了@types/redux-mock-store,但仅此而已,似乎无关
  • 我认为 type 是您要发送的东西的类型,但同样,我不使用它。 This 可能会有所帮助。编码愉快!

标签: typescript redux types react-redux redux-thunk


【解决方案1】:

您要查找的正确类型是Dispatch&lt;AnyAction&gt;

此外,在您的代码库中包含一些 anys 通常没问题。这是关于该主题的blog article by a redux maintainer

如果您的 lint 消息阻碍您实际交付价值,如果您真的想保留它们,则应该与您的团队交谈 - 如果您的团队坚持保留它们,他们应该为您提供指导以了解所需的类型。也许是常规的结对编程?

【讨论】:

  • 嘿,这似乎解决了代码中的问题,但在我的测试中我得到另一个错误:'ActionCreator' 类型的参数不可分配给'AnyAction' 类型的参数。 “ActionCreator”类型中缺少属性“类型”,但在“AnyAction”类型中是必需的。有什么想法吗?
  • 您需要正确输入您的dispatch 函数,默认情况下它不接受thunk。如果你使用redux工具包,你可以使用store.dispatch的类型,它已经为所有应用的中间件正确键入,否则你需要使用ThunkDispatch&lt;any, any ,AnyAction&gt;,从我的脑后。
猜你喜欢
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 2018-12-12
相关资源
最近更新 更多