我在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