Prop type define of Vue3.
npm install vue-propshell
npm install vue-prop
`
#### example
`vue
`
`vue
`
`ts
import { prop } from 'vue-prop';
interface Person {
name: string;
sex?: string;
age: number;
}
const props = {
name: prop.stringNumber.def('123').isRequired,
//{type:[String,Number],required:true,default:123}
test: prop.string,
//{type:String}
titles: prop.array().valid((value) => value.length > 0),
//{type:Array as PropType>,validator:(value) => value.length > 0}
content: prop.vNode,
//{type:[Object,String] as PropType}
style: prop.css.def({ height: '20px' }),
//{type: Object as PropType,default:{ height:'20px' }}
};
`
#### api
| property | default type | example |
|:------------:|:-----------------------------------:|:-----------------------------------------:|
| string | string | prop.string |
| number | number | prop.number.def(7) |
| stringNumber | string Ι number | prop.stringNumber |
| boolean | boolean | prop.boolean |
| symbol | symbol | prop.symbol |
| date | date | prop.date |
| vNode | vue.VNode Ι string Ι null | prop.vNode |
| css | vue.StyleValue | prop.css |
| object | Record | prop.object<{name?:string,age?:number}>() |
| array | Record[] | prop.array<{name:string}>() |
| function | ()=>void | prop.function<(value?:number)=>boolean>() |
| literal | undefined | prop.literal<'ok'Ι'cancel'>() |
#### Template Literal Type
`vue
`
#### Emit Type
`vue
`
#### Custom Type
`ts
import { propType } from "vue-prop";
const props = {
title: propType([String, Boolean]),
user: propType([String, Object]),
color: propType([String, Number])
};
``