Typescript -非必需值的类型断言



这是为了验证正确的处理方式。

我正在使用带有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,
})

看到操场

最新更新