You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redux Toolkit使用reducers报错:CreateSliceOptions类型无reducers属性

解决Redux Toolkit中reducers类型错误问题

你遇到的'reducers' does not exist in type 'CreateSliceOptions<unknown, SliceCaseReducers<unknown>, string>'错误,本质是TypeScript无法正确识别createSlice配置中的reducers字段,通常由依赖版本、类型推断或TS配置问题导致,以下是具体解决方法:

1. 升级Redux Toolkit到最新稳定版

旧版本的Redux Toolkit可能存在类型定义缺陷,直接升级到最新版大概率能解决问题:

npm install @reduxjs/toolkit@latest
# 或用yarn
yarn add @reduxjs/toolkit@latest

2. 修复类型推断,避免滥用any

你代码里的reducer函数把state和action都设为any,完全破坏了TypeScript的类型推断,应该让RTK自动推导类型,或显式指定action的payload类型:

import { createSlice, PayloadAction } from "@reduxjs/toolkit";

interface IPermission {}

interface IState {
    userPermissions: IPermission[];
}

export const initialState: IState = {
    userPermissions: localStorage.getItem("token") ? [] : [],
};

export const permissionSlice = createSlice({
    name: "permissions",
    initialState,
    reducers: {
        // 用PayloadAction明确指定payload的类型
        addPermission: (state, action: PayloadAction<IPermission[]>) => {
            state.userPermissions = action.payload;
        },
    },
});

export const { addPermission } = permissionSlice.actions;
export default permissionSlice.reducer;

3. 检查并调整TypeScript配置

确保你的tsconfig.json中开启了严格模式相关配置,这能帮助TypeScript正确推断类型:

{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true
    // 其他配置...
  }
}

4. 清理依赖缓存(若上述方法无效)

如果升级依赖后问题仍存在,可尝试清理缓存重新安装:

  1. 删除项目根目录下的node_modules文件夹和package-lock.json(或yarn.lock)
  2. 执行npm install(或yarn install)重新安装所有依赖

内容的提问来源于stack exchange,提问作者Rocky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:05:17