当属性在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:"[email protected]",
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助手: