【问题标题】:How can I type a helper function parameter using WritableDraft from @reduxjs/toolkit?如何使用来自@reduxjs/toolkit 的 WritableDraft 键入辅助函数参数?
【发布时间】:2021-05-19 02:18:27
【问题描述】:

我正在使用@reduxjs/toolkit,我想为我的一个切片缩减器编写一个辅助函数。

我会这样称呼:

reducers: {
  MY_REDUCER(draft, action) {
    helperFunction(draft);
  }
}

这将是辅助函数:

const helperFunction= (
  draft: WritableDraft<MY_STATE_TYPE>
) : void => {
  // CHANGE draft
};

但我无法输入draft 参数。 WritableDraft 类型似乎无法从 @reduxjs/toolkit 获得。这可能吗?我该怎么做?

@reduxjs/toolkit 使用 WritableDraft&lt;MY_STATE_TYPE&gt;

【问题讨论】:

    标签: typescript redux reducers redux-toolkit immer.js


    【解决方案1】:

    似乎 immer 最近重命名了该名称,或者您的 IDE 只是泄漏了 immer 内部名称。试试Draft 类型,这是 RTK 实际使用的。

    【讨论】:

    • 是的,Draft 似乎有效。如果我直接使用我的状态类型,它也可以工作。由于这些类型在包含我被允许更新的属性方面是“相同的”。但我会使用Draft 来保持它更加一致。谢谢。
    • 是的,只有当您的状态包含只读内容时,它们才会有所不同。
    猜你喜欢
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2022-01-10
    • 2014-07-29
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多