Typescript Vue类型脚本-数据和自定义类型

Typescript Vue类型脚本-数据和自定义类型,typescript,vue.js,types,nuxt.js,Typescript,Vue.js,Types,Nuxt.js,我有一种类型叫学生 export interface Student { name: string, age: number } 我想将该类型的数据分配给学生 data() { const tommy: Student = {} return { tommy, } 然而,当我在挂载的钩子中为该数据分配一个字符串时,我没有收到任何警告或问题 async mounted() { this.tommy= 'Tommy Smith' 我应该如何在vue typescript

我有一种类型叫学生

export interface Student {
  name: string,
  age: number
}
我想将该类型的数据分配给学生

data() {
const tommy: Student = {}
return {
  tommy,
}

然而,当我在挂载的钩子中为该数据分配一个字符串时,我没有收到任何警告或问题

  async mounted() {
    this.tommy= 'Tommy Smith'

我应该如何在vue typescript中定义自定义数据类型。

您可以选择使用合成API,在该API中,您可以像以前那样实例化具有特定类的对象: 康斯特·汤米:学生

或者,如果要继续使用Options API,可以使用如下类型断言:

data() {
    return {
      tommy: {name: '', age: 0} as Student
    }
}
问题:您为tommy分配了一个字符串,而应该将该字符串分配给name属性:

  async mounted() {
    this.tommy.name = 'Tommy Smith'

这是有道理的。将
tommy
的值指定给对象本身时,将丢失类型推断。Vue不明白这一点。相反,您需要定义组件的属性,
tommy
现在将成为属性。