添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

不能将类型“number”分配给类型“string”

适用场景:

前端是 string 类型的数据例如 单选框的性别:“男” “女” ,需要在后端数据库以 int 类型的格式例如:“0”“1”的格式存储, 后端接收到对象中该属性为int类型 ,故在前端 需要将string转换成int类型

解决方法:

async function revise() {
  const lab = form1.value
  if (form1.value.isRecruit === '否') {
    lab.isRecruit = '0'
    Number(lab.isRecruit)
  else {
    lab.isRecruit = '1'
    Number(lab.isRecruit)
  const response = await axios.post('/update/lab', lab)
  if (response.data) {
    ElMessage.success('修改成功')
  else {
    ElMessage.error('修改失败')
 

代码案例中的逻辑:

需要把lab对象(表单1)作为参数传给后端:axios.post('/update/lab', lab)

但是form1中的isRecruit属性的值为sting类型但是后端接受的对象需要是int,故需要修改

修改方式:

  • 判断isRecruit属性的值
  • 根据实际情况给它赋值string类型的数字
  • Number()函数转换
在使用angular写一些东西的时候,需要用到parseInt()方法来将时间戳转换成时分秒(xx时-xx分-xx秒)的格式,但是因为angular所使用的是Typescript,而 parseInt(string:string,radix?:number):number 在parseInt中传的第一个参数string类型,所以使用parseInt会报错 类型number”的参数不能赋给类型string”的参数。 我找了半天,想了好长时间终于在自己想出来解决办法后,找到了。。。 元组可以看做是数组的拓展,它表示已知元素数量和类型的数组。可以看到,上面我们定义了一个元组 tuple,它包含三个元素,且每个元素的类型是固定的。当我们为 tuple 赋值 时:各个位置上的元素类型都要对应,元素个数也要一致。这里我们给元组 tuple 的索引为 1 即第二个元素赋值为 3,第二个元素类型number,我们赋值给 3,所以没有问题。上面的例子中,我们访问的 tuple 的第二个元素的元素类型number,而数值没有 split 方法,所以会报错。 System.out.println(s1==s2);//true String s3=new String("jiang"); String s4=new String("jiang"); System.out.println(... 当属性在interface定义时,在后面添加了“?”,将此属性定义为了可选属性,为某个属性赋值时,就可能会出现 不能类型string | undefined”分配类型string” 的报错。将问号去掉 用string|null|undefined来表示属性可能出现不同值,用as any 达成兼容效果,问题解决。 检查当前属性是否在interface定义时,在后面添加了“?”,将此属性定义为了可选属性,解决报错可将此属性定位固定属性将问号去掉。确信这个字段100%出现,可以在属性后面添加感叹号“!”,强调这个字段一定存在,也可以解决报错。 使用 get() set() 定义计算属性时,出现 '不能类型“WritableComputedRef”分配类型string” ts(2322)' 或 "error TS2322: Type 'WritableComputedRef' is not assignable to type 'string'" 错误解决方法