在 lin.wx.app.d.ts 里有如下声明
interface AppInstance<T extends IAnyObject = {}> {
/** 生命周期回调—监听小程序初始化
*
* 小程序初始化完成时触发,全局只触发一次。
*/
onLaunch?(options?: ILaunchShowOption): void
/** 生命周期回调—监听小程序显示
*
* 小程序启动,或从后台进入前台显示时
*/
onShow?(options?: ILaunchShowOption): void
/** 生命周期回调—监听小程序隐藏
*
* 小程序从前台进入后台时
*/
onHide?(): void
/** 错误监听函数
*
* 小程序发生脚本错误,或者 api
*/
onError?(/** 错误信息,包含堆栈 */error?: string): void
/** 页面不存在监听函数
*
* 小程序要打开的页面不存在时触发,会带上页面信息回调该函数
*
* **注意:**
* 1. 如果开发者没有添加 `onPageNotFound` 监听,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面。
* 2. 如果 `onPageNotFound` 回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再回调 `onPageNotFound`。
*
* 最低基础库:1.9.90
*/
onPageNotFound?(options?: IPageNotFoundOption): void
}
为什么这里要用泛型 ? 我看下面并没有用到它啊 ? 还是说有其它特殊语法使用方式 ?
interface AppConstructor {
<T extends IAnyObject & AppInstance>(
options: AppInstance<T> & T
): void
}
这里为什么一会传入泛型 一会不传入? 我知道有默认的可以不传入 , 但一处传一处不传, 有什么特别含义 ?
还望大神解惑
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.