[improvement] organize type definitions

This commit is contained in:
陈嘉涵
2019-05-13 19:07:04 +08:00
parent 96b1d8f81d
commit 7755b1738e
40 changed files with 111 additions and 121 deletions

34
packages/utils/types.ts Normal file
View File

@@ -0,0 +1,34 @@
import { VNode, CreateElement, RenderContext } from 'vue';
import { InjectOptions, PropsDefinition } from 'vue/types/options';
export type EventHanlder = (eventName?: Event) => void;
export type ObjectIndex = {
[key: string]: any;
};
export type ScopedSlot<Props = any> = (props?: Props) => VNode[] | VNode | undefined;
export type DefaultSlots = {
default?: ScopedSlot;
};
export type ScopedSlots = DefaultSlots & {
[key: string]: ScopedSlot | undefined;
};
export type ModelOptions = {
prop?: string;
event?: string;
};
export type DefaultProps = Record<string, any>;
export type FunctionComponent<Props = DefaultProps, PropDefs = PropsDefinition<Props>> = {
(h: CreateElement, props: Props, slots: ScopedSlots, context: RenderContext<Props>):
| VNode
| undefined;
props?: PropDefs;
model?: ModelOptions;
inject?: InjectOptions;
};