在VueJS中是否可以为组件prop提供一种以上类型和多个默认值?

时间:2018-09-26 06:55:37

标签: vue.js vuejs2 vue-component

我知道我可以给任何道具指定其期望的类型和默认值,例如:

export default {
            name: "myComponent",
            props: {
                myProp: { type: String, default: 'any text' }
           }
    }

在文档中,我可以给出两种类型的数组,如下所示:

export default {
        name: "myComponent",
        props: {
            myProp: [String, Array]
            }
}

但是我希望我也可以给这些类型中的任何一个提供默认值(这是行不通的):有可能吗?

export default {
        name: "myComponent",
        props: {
          myProp: **[{type: String, default: ''}, {type: Array, default: []} ]** 
       }
}

1 个答案:

答案 0 :(得分:1)

我认为这是不可能,例如,如果您有

export default {
    name: "myComponent",
    props: {
      myProp: [
        {type: String, default: ''}, 
        {type: Array, default: []}
      ] 
   }
}

然后,当您编写组件而不传递myProp时:

<my-component />

然后my-component不知道它应该从默认String或默认Array定义中获取值。