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