当我在redux-toolkit createSlice方法中设置初始状态时,TypeScript错误



我在redux-models中有一些接口。ts文件:

export interface IUser{
user:{}
}
export interface IUsers{
users:IUser[]
}
export type TUser=IUser|IUsers

我在todoSlice中调用了接口。ts文件:

import { createSlice,PayloadAction } from "@reduxjs/toolkit";
import { TUser,IUser,IUsers } from "./redux-models";

const initialState:TUser={
user:{},
users:[]
}
const slice=createSlice({
name:"slice",
initialState:{initialState},
reducers:{
setUsers(state,action:PayloadAction<IUsers>){
state.users=action.payload;
}
}
})

但是typescript编译不让我继续,因为错误:

Property 'users' does not exist on type 'WritableDraft<{ initialState: TUser; }>'.ts(2339)

注意:(当我设置state.users时发生错误)

什么是错误的?

在IUser界面你没有'users',这个错误已经发生了,因为你写了IUser | IUsers(也在IUsers你没有'user')。

你可以试试:

export type TUser = IUser & IUsers