index.d.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import "miniprogram-api-typings";
  2. export const behavior: WechatMiniprogram.Behavior.Constructor;
  3. export interface ComponentId<
  4. TData extends WechatMiniprogram.Component.DataOption,
  5. TProperty extends WechatMiniprogram.Component.PropertyOption,
  6. TMethod extends WechatMiniprogram.Component.MethodOption
  7. > extends String {}
  8. export function register<
  9. TData extends WechatMiniprogram.Component.DataOption,
  10. TProperty extends WechatMiniprogram.Component.PropertyOption,
  11. TMethod extends WechatMiniprogram.Component.MethodOption
  12. >(
  13. options: WechatMiniprogram.Component.Options<TData, TProperty, TMethod> & {
  14. id?: string;
  15. tagName?: string;
  16. template?: string;
  17. usingComponents?: Object;
  18. }
  19. ): ComponentId<TData, TProperty, TMethod>;
  20. export function create<
  21. TData extends WechatMiniprogram.Component.DataOption,
  22. TProperty extends WechatMiniprogram.Component.PropertyOption,
  23. TMethod extends WechatMiniprogram.Component.MethodOption
  24. >(
  25. componentId: ComponentId<TData, TProperty, TMethod>,
  26. properties?: Partial<
  27. WechatMiniprogram.Component.PropertyOptionToData<TProperty>
  28. >
  29. ): RootComponent<TData, TProperty, TMethod>;
  30. export function create(
  31. componentId: string,
  32. properties?: any
  33. ): Component<any, any, any>;
  34. export interface ComponentJSON {
  35. tagName: string;
  36. attrs: { name: string; value: any }[];
  37. event: {
  38. [event: string]: {
  39. handler: string;
  40. isMutated: boolean;
  41. isCapture: boolean;
  42. isCatch: boolean;
  43. name: string;
  44. };
  45. };
  46. children: ComponentJSON[];
  47. }
  48. export class Component<
  49. TData extends WechatMiniprogram.Component.DataOption,
  50. TProperty extends WechatMiniprogram.Component.PropertyOption,
  51. TMethod extends Partial<WechatMiniprogram.Component.MethodOption>
  52. > {
  53. readonly dom: HTMLElement | undefined;
  54. readonly data: Readonly<TData>;
  55. readonly instance: WechatMiniprogram.Component.Instance<
  56. TData,
  57. TProperty,
  58. TMethod
  59. >;
  60. dispatchEvent(eventName: string, options?: any): void;
  61. querySelector(selector: string): Component<any, any, any> | undefined;
  62. querySelectorAll(selector: string): Component<any, any, any>[];
  63. setData(
  64. data: Partial<TData> & { [x: string]: any },
  65. callback?: () => void
  66. ): void;
  67. triggerLifeTime(
  68. lifetime:
  69. | "created"
  70. | "ready"
  71. | "attached"
  72. | "moved"
  73. | "detached"
  74. | "saved"
  75. | "restored"
  76. | "error"
  77. | "listenerChanged"
  78. ): void;
  79. toJSON(): ComponentJSON;
  80. }
  81. export class RootComponent<
  82. TData extends WechatMiniprogram.Component.DataOption,
  83. TProperty extends WechatMiniprogram.Component.PropertyOption,
  84. TMethod extends Partial<WechatMiniprogram.Component.MethodOption>
  85. > extends Component<TData, TProperty, TMethod> {
  86. attach(parent: Node): void;
  87. detach(): void;
  88. }