ssc*_*ep3 34
带有管道 (
Number | String)的语法,就像在接受的答案中提出的那样,实际上不起作用。这是带有示例的更详细的解决方案:
使用以下语法键入检查道具:
props: {
username: {
type: [ String, Number ]
}
}
Run Code Online (Sandbox Code Playgroud)
这是带有类型检查的属性的实时示例:
props: {
username: {
type: [ String, Number ]
}
}
Run Code Online (Sandbox Code Playgroud)
Vue.config.devtools = false;
Vue.config.productionTip = false;
Vue.component('test-component', {
name: 'TestComponent',
props: {
username: {
type: [ String, Number ]
}
},
template: `<div>username: {{ username }}</div>`
});
new Vue({ el: '#app' });Run Code Online (Sandbox Code Playgroud)
使用以下语法与自定义验证器一起键入检查必需的属性。
props: {
username: {
type: [ String, Number ],
required: true, // optional
validator: item => item !== '123' // optional
}
}
Run Code Online (Sandbox Code Playgroud)
这是必需属性和自定义验证器的实时示例:
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.js"></script>
<div id="app">
<!-- valid: String -->
<test-component :username="'user 38'"></test-component>
<!-- valid: Number -->
<test-component :username="59"></test-component>
<!-- valid: null is valid, it is not required -->
<test-component :username="null"></test-component>
<!-- valid: missing property is valid, it is not required -->
<test-component></test-component>
<!-- invalid: Array -->
<test-component :username="['test', 456]"></test-component>
</div>Run Code Online (Sandbox Code Playgroud)
props: {
username: {
type: [ String, Number ],
required: true, // optional
validator: item => item !== '123' // optional
}
}
Run Code Online (Sandbox Code Playgroud)
Har*_*ath 29
这是我找到的解决方案。
props: {
value: Number | String | Array
}
Run Code Online (Sandbox Code Playgroud)
要么
props: {
value: [Number, String, Array]
}
Run Code Online (Sandbox Code Playgroud)
一般来说,道具列为字符串数组,如果您没有任何类型的头痛:
props: ['title', 'likes', 'isPublished', 'commentIds', 'author']
Run Code Online (Sandbox Code Playgroud)
如果您希望每个道具都是特定类型的值。在这些情况下,您可以将 props 作为一个对象列出,其中属性的名称和值分别包含 prop 名称和类型:
props: {
title: String,
likes: Number,
isPublished: Boolean,
commentIds: Array,
author: Object
}
Run Code Online (Sandbox Code Playgroud)
如果要使用多种类型,则如下所示:
props: {
value: [String, Number],
}
Run Code Online (Sandbox Code Playgroud)