Angular - 此条件将始终返回'true',因为 'void' 和 'string' 类型没有重叠。ts(2367)



在我的Angular-11中,我有这样的代码:

user(){
const data = localStorage.setItem('user', JSON.stringify(this.user));
if (data != null && data!='undefined') {
return data;
}
this.api.get('auth/user', this.header).subscribe(
// tslint:disable-next-line:no-shadowed-variable
data => { this.dataHandler(data) },
error => { console.log(error) }
);
}

但我得到了这个错误:

由于类型"void"one_answers"string"没有重叠,因此此条件将始终返回"true"。ts(2367(

然后突出显示:

if(data!=null&&data!='未定义'({

如何解决?

感谢

您必须注意,localStorage.setItem()函数没有返回值,const dataundefined赋值。

const data = localStorage.setItem('user', JSON.stringify(this.user)); // sets data as undefined always
if (data != null && data!='undefined') { // data !='undefined' => undefined != 'undefined' will always return true
return data;
}

相关内容

最新更新