33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
/// <reference types="miniprogram-api-typings" />
|
|
import { Weapp } from './weapp';
|
|
declare type RecordToAny<T> = {
|
|
[K in keyof T]: any;
|
|
};
|
|
declare type RecordToReturn<T> = {
|
|
[P in keyof T]: T[P] extends (...args: any[]) => any ? ReturnType<T[P]> : T[P];
|
|
};
|
|
export declare type CombinedComponentInstance<Data, Props, Methods, Computed> = Methods & WechatMiniprogram.Component.TrivialInstance & Weapp.FormField & {
|
|
data: Data & RecordToReturn<Computed> & RecordToAny<Props>;
|
|
};
|
|
export interface VantComponentOptions<Data, Props, Methods, Computed, Instance> {
|
|
data?: Data;
|
|
field?: boolean;
|
|
classes?: string[];
|
|
mixins?: string[];
|
|
props?: Props & Weapp.PropertyOption;
|
|
watch?: Weapp.WatchOption<Instance>;
|
|
computed?: Computed & Weapp.ComputedOption<Instance>;
|
|
relation?: Weapp.RelationOption<Instance> & {
|
|
name: string;
|
|
};
|
|
relations?: {
|
|
[componentName: string]: Weapp.RelationOption<Instance>;
|
|
};
|
|
methods?: Methods & Weapp.MethodOption<Instance>;
|
|
beforeCreate?: (this: Instance) => void;
|
|
created?: (this: Instance) => void;
|
|
mounted?: (this: Instance) => void;
|
|
destroyed?: (this: Instance) => void;
|
|
}
|
|
export {};
|