interface VantComponentInstance { parent: WechatMiniprogram.Component.TrivialInstance; children: WechatMiniprogram.Component.TrivialInstance[]; index: number; $emit: ( name: string, detail?: unknown, options?: WechatMiniprogram.Component.TriggerEventOption ) => void; } export type VantComponentOptions< Data extends WechatMiniprogram.Component.DataOption, Props extends WechatMiniprogram.Component.PropertyOption, Methods extends WechatMiniprogram.Component.MethodOption > = { data?: Data; field?: boolean; classes?: string[]; mixins?: string[]; props?: Props; relation?: { relations: Record<string, WechatMiniprogram.Component.RelationOption>; mixin: string; }; watch?: Record<string, (...args: any[]) => any>; methods?: Methods; // lifetimes beforeCreate?: () => void; created?: () => void; mounted?: () => void; destroyed?: () => void; } & ThisType< VantComponentInstance & WechatMiniprogram.Component.Instance< Data & { name: string; value: any; } & Record<string, any>, Props, Methods > & Record<string, any> >;