使用 ts 表单 number 类型的初始值如何给比较优雅?

查看 29|回复 0
作者:17681880207   
比如有个表单有一个 select 的 value 为 number 类型。
但是一般定义的时候都是:
// 这里 selectedValue 会被自动推导为 string 类型
const formModel = ref({
  // ...
  selectedValue: ''
})
虽然 select 选择值之后,打印 formModel.value.selectedValue 的值确实为 number ,但是会导致使用的时候类型推断错误,例如在接口中:
// api.ts
interface IRequest {
  // ...
  selectedValue: number
}
getList(params: IRequest):Promise {
  return axios.get('xxx', {params})
}
// page.vue
const getList = async() => {
  const result = await api.getList({
    // ...
    // 这里会报错 selectedValue 是 string 类型而接口要求的是 number 类型
    selectedValue: formModel.value.selectedValue
  })
}
但是如果在 formModel 中将 selectedValue 定义为 number | string 类型,那就得把 IRequest 的也修改了,这感觉有点莫名其妙。因为后台确确实实要求的就仅仅是 number 而已。
请问给位大佬如何优雅的处理这个问题?
或者是将 selectedValue 设置为 undefined ?
const formModel = ref({
  // ...
  selectedValue: undefined
})
您需要登录后才可以回帖 登录 | 立即注册

返回顶部