@tplc/wot
Version:
52 lines (41 loc) • 1.02 kB
text/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(''),
}