types: extract prop types (#8332)

This commit is contained in:
neverland
2021-03-14 10:58:08 +08:00
committed by GitHub
parent 6e026e18c3
commit ceebc22e63
9 changed files with 235 additions and 260 deletions
+23 -30
View File
@@ -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);