types: extract prop types (#8332)
This commit is contained in:
+23
-30
@@ -1,4 +1,4 @@
|
||||
import { PropType, defineComponent } from 'vue';
|
||||
import { PropType, defineComponent, ExtractPropTypes } from 'vue';
|
||||
import { createNamespace, addUnit } from '../utils';
|
||||
import { BORDER_TOP } from '../utils/constant';
|
||||
import { useChildren } from '@vant/use';
|
||||
@@ -9,41 +9,34 @@ export const GRID_KEY = Symbol(name);
|
||||
|
||||
export type GridDirection = 'horizontal' | 'vertical';
|
||||
|
||||
const props = {
|
||||
square: Boolean,
|
||||
gutter: [Number, String],
|
||||
iconSize: [Number, String],
|
||||
direction: String as PropType<GridDirection>,
|
||||
clickable: Boolean,
|
||||
columnNum: {
|
||||
type: [Number, String],
|
||||
default: 4,
|
||||
},
|
||||
center: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
border: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
};
|
||||
|
||||
export type GridProvide = {
|
||||
props: {
|
||||
center: boolean;
|
||||
border: boolean;
|
||||
square?: boolean;
|
||||
gutter?: number | string;
|
||||
iconSize?: number | string;
|
||||
columnNum: number | string;
|
||||
direction?: GridDirection;
|
||||
clickable?: boolean;
|
||||
};
|
||||
props: ExtractPropTypes<typeof props>;
|
||||
};
|
||||
|
||||
export default defineComponent({
|
||||
name,
|
||||
|
||||
props: {
|
||||
square: Boolean,
|
||||
gutter: [Number, String],
|
||||
iconSize: [Number, String],
|
||||
direction: String as PropType<GridDirection>,
|
||||
clickable: Boolean,
|
||||
columnNum: {
|
||||
type: [Number, String],
|
||||
default: 4,
|
||||
},
|
||||
center: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
border: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
props,
|
||||
|
||||
setup(props, { slots }) {
|
||||
const { linkChildren } = useChildren(GRID_KEY);
|
||||
|
||||
Reference in New Issue
Block a user