这是为了验证正确的处理方式。
我正在使用带有Typescript的Vue前端,通过axios向API发布数据。
我有响应对象,如:
const payload = reactive({
name: '',
religion: undefined as string | undefined
gender: undefined as string | undefined
})
一个相当简单的例子,然而,看到宗教和性别字段不需要在有效负载中,除非在发布到API时设置,它们默认设置为未定义,然后在发布时过滤掉。
这是处理这种情况的正确方法吗?
我应该用更好的方式处理这个吗?
通常最好在第一步编写一个对数据建模的类型。您可以使用foo?: SomeType
语法将属性声明为可选的。
interface MyCoolThing {
name: string,
religion?: string
gender?: string
}
现在你可以使用整个类型来强制执行:
const payload = reactive({
name: '',
religion: undefined,
gender: undefined,
} as MyCoolThing)
但是你可以做得更好。reactive
是一个泛型函数,其中泛型类型参数是其第一个参数的类型。所以你可以显式地传递这个类型:
const payload = reactive<MyCoolThing>({
name: '',
religion: undefined,
gender: undefined,
})
看到操场