/// import type { Any, EmptyObject } from '@web-io/common/es/types'; /** * 扩展`tinyapp.ComponentOptions`支持组件实例额外属性泛型, see `mini-types/types/component.d.ts`. * * @template P Type of component properties. * @template D Type of component data. * @template M Type of component methods. * @template ExtendThis Type of extended component instance, 可用于扩展组件内部属性. */ declare type ComponentOptions

= Record, D = Any, M extends tinyapp.IComponentMethods = tinyapp.IComponentMethods, ExtendThis = EmptyObject> = tinyapp.IComponentLifeCycleMethods & { /** * 组件间代码复用机制 */ mixins?: ComponentOptions[]; /** * 组件内部状态 */ data?: D; /** * 为外部传入的数据设置默认值 */ props?: P; /** * 组件的方法,可以是事件响应函数或任意的自定义方法 */ methods?: M & ThisType & M & ExtendThis>; } & ThisType & M & ExtendThis>; /** * @template P Type of component properties. * @template D Type of component data. * @template M Type of component methods. * @template ExtendThis Type of extended component instance, 可用于扩展组件内部属性. */ declare type ICreateComponentOptions = ComponentOptions & { /** * 将全局对象的值 map 到当前组件的 data. */ mapGlobalDataToData?: Record; }; /** * miniu data createComponent data泛型参数支持. * * @template P Type of component properties. * @template D Type of component data. * @template M Type of component methods. * @template ExtendThis Type of extended component instance, 可用于扩展组件内部属性. 注:组件选项中除了已定义选项,多余的选项不会注入到组件实例上,只能在组件方法中自行注入. * @template G Type of map global data to data, 全局数据映射到组件上为只读, 由于全局数据通过`setGlobalData`修改,所以将其设置为partial. * @param options Component options. * @returns Component instance. */ declare function createComponent

, D = Record, M extends tinyapp.IComponentMethods = tinyapp.IComponentMethods, ExtendThis = EmptyObject, G = EmptyObject>(options: ICreateComponentOptions>, M, ExtendThis>): ComponentOptions>, M, ExtendThis>; export default createComponent; export type { ComponentOptions, ICreateComponentOptions };