52 lines
1012 B
TypeScript
52 lines
1012 B
TypeScript
import type { PropType } from 'vue'
|
|
|
|
export const unknownProp = null as unknown as PropType<unknown>
|
|
|
|
export const numericProp = [Number, String]
|
|
|
|
export const truthProp = {
|
|
type: Boolean,
|
|
default: true as const
|
|
}
|
|
|
|
export const makeRequiredProp = <T>(type: T) => ({
|
|
type,
|
|
required: true as const
|
|
})
|
|
|
|
export const makeArrayProp = <T>() => ({
|
|
type: Array as PropType<T[]>,
|
|
default: () => []
|
|
})
|
|
|
|
export const makeBooleanProp = <T>(defaultVal: T) => ({
|
|
type: Boolean,
|
|
default: defaultVal
|
|
})
|
|
|
|
export const makeNumberProp = <T>(defaultVal: T) => ({
|
|
type: Number,
|
|
default: defaultVal
|
|
})
|
|
|
|
export const makeNumericProp = <T>(defaultVal: T) => ({
|
|
type: numericProp,
|
|
default: defaultVal
|
|
})
|
|
|
|
export const makeStringProp = <T>(defaultVal: T) => ({
|
|
type: String as unknown as PropType<T>,
|
|
default: defaultVal
|
|
})
|
|
|
|
export const baseProps = {
|
|
/**
|
|
* 自定义根节点样式
|
|
*/
|
|
customStyle: makeStringProp(''),
|
|
/**
|
|
* 自定义根节点样式类
|
|
*/
|
|
customClass: makeStringProp('')
|
|
}
|