2
我正在写一个终极版减速时,我发现这个代码:打字稿未定义强迫
export function users(state: { myself: IUser | undefined, users: IUser[] } = { myself: undefined, users: [] }, action: UserActions) {
const mself = state.myself;
if (action.type === EMyselfAction.CHANGE_MYSELF_CONFIG && state.myself !== undefined) {
return {
myself: myself(mself, action),
users: state.users.map((u) => user(u, action, state.myself.id)),
};
}
...
}
是输出错误对象可能是“未定义”:
怎么能state.myself
未定义,如果它已被检查,它不是?
的可能的复制【如何抑制打字稿?“错误TS2533:对象可能是‘空’或‘未定义’”](https://stackoverflow.com/questions/40349987/如何禁止打字脚本错误ts2533对象是可能null或undefine) – k0pernikus
您能否请将错误消息作为文本发布,而不是只发布它作为截图?这可能会帮助其他人面临同样的错误通过谷歌找到问题。 – k0pernikus
由于断言('T is' type guard或'!== null'检查),TS不会总是“改变”参数的类型。你可能有更好的运气用'mself'替换'state.myself'并声明反对(局部变量更容易改变)。 – ssube