1 | declare 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 | }
|