UNPKG

2.28 kBTypeScriptView Raw
1declare namespace tinyapp {
2 type Query = Record<string, string | number>;
3
4 interface IAppLaunchOptions {
5 /**
6 * 当前小程序的 query,从启动参数的 query 字段解析而来
7 */
8 query?: Query;
9
10 /**
11 * 当前小程序的页面地址,从启动参数 page 字段解析而来,page 忽略时默认为首页
12 */
13 path?: string;
14
15 /**
16 * 来源信息。
17 */
18 referrerInfo?: {
19 /**
20 * 来源小程序
21 */
22 appId: string;
23
24 /**
25 * 来源插件,当处于插件运行模式时可见
26 */
27 sourceServiceId: string;
28
29 /**
30 * 来源小程序传过来的数据。
31 */
32 extraData: Record<string, any>;
33 };
34 }
35
36 interface IAppOptionsMethods {
37 /**
38 * 生命周期函数。
39 *
40 * 监听小程序初始化。
41 *
42 * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)。
43 */
44 onLaunch?(options: IAppLaunchOptions): void;
45
46 /**
47 * 生命周期函数。
48 *
49 * 监听小程序显示。
50 *
51 * 当小程序启动,或从后台进入前台显示,会触发 onShow。
52 *
53 * **注意:** 不要在 onShow 中进行 redirectTo/navigateTo 等操作页面栈的行为。
54 */
55 onShow?(options: IAppLaunchOptions): void;
56
57 /**
58 * 生命周期函数。
59 *
60 * 监听小程序隐藏。
61 *
62 * 当小程序从前台进入后台,会触发 onHide。
63 */
64 onHide?(): void;
65
66 /**
67 * 错误监听函数。
68 *
69 * 当小程序发生脚本错误,或者 API 调用失败时,会触发 onError 并带上错误信息。
70 */
71 onError?(error: any): void;
72
73 /**
74 * 全局分享配置。
75 *
76 * 当页面未设置 `page.onShareAppMessage` 时调用分享会执行全局的分享设置。
77 */
78 onShareAppMessage?(options: OnShareAppMessageOptions): IOnShareAppMessageResult;
79 }
80
81 interface IAppInstance<G> {
82 /**
83 * 全局状态数据。
84 */
85 globalData: G;
86 }
87
88 /**
89 * App 实现的接口对象
90 * 参考: https://docs.alipay.com/mini/framework/app
91 */
92 type AppOptions<G = any> = IAppOptionsMethods
93 & {
94 globalData?: G;
95 [name: string]: any;
96 }
97 & ThisType<IAppInstance<G>>;
98}