问题
出现以下报错
源代码
原因
当属性在interface定义时,在后面添加了“?”,将此属性定义为了可选属性,为某个属性赋值时,就可能会出现 不能将类型“string | undefined”分配给类型“string” 的报错
解决方法如下:
export interface User {
"userId": number,
"username": string,
"userHead": string|null|undefined,
"email": string|null|undefined,
"phone": string|null|undefined,
"occupationId": number|null|undefined,
"occupationName": string|null|undefined,
"roleId": number,
"roleName": string,
"createTime": string,
"numberOfDesktops": number
}
let userData=reactive({
username:"Tom",
userHead:"" as any,
roleId:0,
roleName:"普通用户",
userId:1893746197410,
phone:"10086" as any,
email:"222234988@qq.com",
occupationId:1 as any,
occupationName:"程序员" as any,
// areaList:["游戏","学习"],
// softwareList:["QQ","微信","wps"],
numberOfDesktops:0,
createTime:"2023年5月1日"
});
将问号去掉 用string|null|undefined来表示属性可能出现不同值,用as any 达成兼容效果,问题解决