在类中声明对象属性-Vue

时间:2019-05-16 07:48:03

标签: typescript vue.js

在JS版本中,我将其写为:

export default {
  data() {
    return {
      users: {}
    }
  }
}

但是在使用vue-property-decorator的类样式组件中:

@Component
export default class Login extends Vue {
  public title: string = 'something'
}

我可以设置字符串/数字,但是如何设置对象?

users对象看起来像这样:

{
  response: {
    users: [
      {
        user_email: '1@example.com',
        user_password: 'password'
      },
      {
        user_email: '2@example.com',
        user_password: 'password'
      }
    ]
  }
}

1 个答案:

答案 0 :(得分:0)

const DEFAULT_OBJECT: ObjectType = {
        prop1: "value1",
        prop2: "value2
    };

这是您声明和初始化对象的方式:

public myObject: ObjectType = DEFAULT_OBJECT;

以下是您接受对象作为道具的方式:

@Prop({ default: () => (DEFAULT_OBJECT) })
public myObject: ObjectType;

在这种情况下,您需要像这样为User定义一个接口:

interface User {
    email: string;
    password: string;
}

const DEFAULT_USERS: User[] = [
    {
        email: 'a@b.coom',
        password: 'abc'
    },
    {
        email: 'b@b.coom',
        password: 'abc1'
    }
];

然后,在您的组件中,如下所示声明您的users属性:

export default class UserDetails extends Vue {
    public users: User[] = DEFAULT_USERS;
}