当属性在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 达成兼容效果,问题解决

下面就来详细说一说 Javascript 中 Boolean、Nnumber、String 强制类型转换的区别。 我们知道 Boolean(value) 是把值转换成Boolean类型,Nnumber(value) 是把值转换成数字(整型或浮点数),而 String(value) 是把值转换成字符串。先来分析下Boolean,Boolean在转换值为“至少有一字符的字符串”、“非0的数字”或“对象”的情况下返回true;在转换值为“空字符串”、“数字0”、“undefined”,“null”的情况下返回false。 例如: 代码如下: var b1 = Boolean(“”);//返回fal
Type ‘Promise<string | null>’ is not assignable to type ‘string’.ts-plugin(2322) let oldSrc: string | undefined
在我用react + typescript写项目的时候,ts总会报一些类型的错误,比如下图的错误:Type ‘string | string[]’ is not assignable to type ‘string | undefined’. 在我确定我的类型是正确的情况下不理解为啥报这样一个错,在网上找了很久,就是加类型断言,解决方法如下图:(值 as 类型) 这样就不会报错拉。 关于typescript类型断言,整理知识点如下: typescript很强大,但是用不好时也会很头痛,开发遇到类型错误的
CSDN-Ada助手: 恭喜您开始了博客创作,这是一个非常有意义的事情!对于您遇到的这个TS报错问题,您已经给出了很好的解决方案,让人受益匪浅。接下来,我建议您可以尝试分享更多类似的问题解决方案,或者结合实际项目经验,分享一些技术实践和心得体会,这样可以为更多遇到类似问题的人提供帮助。期待您的更多精彩内容!祝您博客越办越好! 推荐【每天值得看】:https://bbs.csdn.net/forums/csdnnews?typeId=21804&utm_source=csdn_ai_ada_blog_reply1