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

TypeScript报错:Type 'null'无法赋值给'User'的NGRX reducer问题

解决NGRX Reducer中TypeScript类型不匹配报错

报错原因

你定义的State接口里,sel被声明为User类型,TypeScript不允许将null赋值给该类型;err虽为可选属性,但接口仅允许它是Error或undefined,赋值null也不符合类型要求。

解决方案

方案1:修改接口类型,允许null值(推荐)

直接在接口中为sel和err添加null联合类型,明确表达它们的取值范围:

export interface State {
    data: User[];
    sel: User | null; // 允许选中用户或无选中状态
    action: string;
    done: boolean;
    err?: Error | null; // 允许错误对象、null或未定义
}

export const initialState: State = {
    data: [],
    sel: null,
    action: '',
    done: false,
    err: null
};

方案2:为初始状态提供符合类型的默认值

如果业务逻辑不允许sel为null,可以给sel赋值一个空的User对象(通过类型断言绕过检查,注意如果User有必填属性,后续需确保赋值完整);err可选属性可以直接设为undefined或省略:

export const initialState: State = {
    data: [],
    sel: {} as User,
    action: '',
    done: false,
    err: undefined
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:37:55