From 855654eb0917dab7c6be2eb5a177d0be55a3aeee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=98=E8=85=BE=E7=AC=94=E8=AE=B0?= Date: Fri, 28 Jun 2019 00:35:45 +0800 Subject: [PATCH] update types for uni-app (#36317) * fix: getStoragetSync return value is incorrect. * fix: The type of return value type of Storage is incorrect * added parameter for GetStorageOptions.success * added value parameter for setStorageSync * fix setStorageSync with value: any * update types for uni-app * add class EditorContext for uni-app types * fix lint for uni-app * remove *.vue module for uni-app * update types for uni-app * update types for uni-app --- types/uni-app/index.d.ts | 2 +- types/uni-app/lib/app.d.ts | 373 ++++++++++++++++-------------------- types/uni-app/lib/page.d.ts | 134 ++++++++----- types/uni-app/lib/uni.d.ts | 210 +++++++++++++++++++- 4 files changed, 452 insertions(+), 267 deletions(-) diff --git a/types/uni-app/index.d.ts b/types/uni-app/index.d.ts index f693c5a564..1e865a1aa8 100644 --- a/types/uni-app/index.d.ts +++ b/types/uni-app/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for non-npm package uni-app 1.2 +// Type definitions for non-npm package uni-app 1.3 // Project: https://github.com/dcloudio/uni-app // Definitions by: DCloud // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped diff --git a/types/uni-app/lib/app.d.ts b/types/uni-app/lib/app.d.ts index af29f99b17..16dfa1ae7a 100644 --- a/types/uni-app/lib/app.d.ts +++ b/types/uni-app/lib/app.d.ts @@ -1,234 +1,189 @@ declare namespace App { - interface LaunchOptions { - query: number; - } - - interface ReferrerInfo { - /** - * 来源小程序或公众号或App的 appId - * - * 以下场景支持返回 referrerInfo.appId: - * - 1020(公众号 profile 页相关小程序列表): appId - * - 1035(公众号自定义菜单):来源公众号 appId - * - 1036(App 分享消息卡片):来源应用 appId - * - 1037(小程序打开小程序):来源小程序 appId - * - 1038(从另一个小程序返回):来源小程序 appId - * - 1043(公众号模板消息):来源公众号 appId - */ - appId: string; - /** 来源小程序传过来的数据,scene=1037或1038时支持 */ - extraData?: any; - } - - type SceneValues = 1001 - | 1005 - | 1006 - | 1007 - | 1008 - | 1011 - | 1012 - | 1013 - | 1014 - | 1017 - | 1019 - | 1020 - | 1022 - | 1023 - | 1024 - | 1025 - | 1026 - | 1027 - | 1028 - | 1029 - | 1030 - | 1031 - | 1032 - | 1034 - | 1035 - | 1036 - | 1037 - | 1038 - | 1039 - | 1042 - | 1043 - | 1044 - | 1045 - | 1046 - | 1047 - | 1048 - | 1049 - | 1052 - | 1053 - | 1054 - | 1056 - | 1057 - | 1058 - | 1059 - | 1064 - | 1067 - | 1068 - | 1069 - | 1071 - | 1072 - | 1073 - | 1074 - | 1077 - | 1078 - | 1079 - | 1081 - | 1082 - | 1084 - | 1089 - | 1090 - | 1091 - | 1092 - | 1095 - | 1096 - | 1097 - | 1099 - | 1102 - | 1103 - | 1104 - | number; - - interface LaunchShowOption { - /** 打开小程序的路径 */ - path: string; - /** 打开小程序的query */ - query: AnyObject; - /** - * 打开小程序的场景值 - * - 1001: 发现栏小程序主入口,「最近使用」列表(基础库2.2.4版本起包含「我的小程序」列表) - * - 1005: 顶部搜索框的搜索结果页 - * - 1006: 发现栏小程序主入口搜索框的搜索结果页 - * - 1007: 单人聊天会话中的小程序消息卡片 - * - 1008: 群聊会话中的小程序消息卡片 - * - 1011: 扫描二维码 - * - 1012: 长按图片识别二维码 - * - 1013: 手机相册选取二维码 - * - 1014: 小程序模板消息 - * - 1017: 前往体验版的入口页 - * - 1019: 微信钱包 - * - 1020: 公众号 profile 页相关小程序列表 - * - 1022: 聊天顶部置顶小程序入口 - * - 1023: 安卓系统桌面图标 - * - 1024: 小程序 profile 页 - * - 1025: 扫描一维码 - * - 1026: 附近小程序列表 - * - 1027: 顶部搜索框搜索结果页「使用过的小程序」列表 - * - 1028: 我的卡包 - * - 1029: 卡券详情页 - * - 1030: 自动化测试下打开小程序 - * - 1031: 长按图片识别一维码 - * - 1032: 手机相册选取一维码 - * - 1034: 微信支付完成页 - * - 1035: 公众号自定义菜单 - * - 1036: App 分享消息卡片 - * - 1037: 小程序打开小程序 - * - 1038: 从另一个小程序返回 - * - 1039: 摇电视 - * - 1042: 添加好友搜索框的搜索结果页 - * - 1043: 公众号模板消息 - * - 1044: 带 shareTicket 的小程序消息卡片 [详情]((转发#获取更多转发信息)) - * - 1045: 朋友圈广告 - * - 1046: 朋友圈广告详情页 - * - 1047: 扫描小程序码 - * - 1048: 长按图片识别小程序码 - * - 1049: 手机相册选取小程序码 - * - 1052: 卡券的适用门店列表 - * - 1053: 搜一搜的结果页 - * - 1054: 顶部搜索框小程序快捷入口 - * - 1056: 音乐播放器菜单 - * - 1057: 钱包中的银行卡详情页 - * - 1058: 公众号文章 - * - 1059: 体验版小程序绑定邀请页 - * - 1064: 微信连Wi-Fi状态栏 - * - 1067: 公众号文章广告 - * - 1068: 附近小程序列表广告 - * - 1069: 移动应用 - * - 1071: 钱包中的银行卡列表页 - * - 1072: 二维码收款页面 - * - 1073: 客服消息列表下发的小程序消息卡片 - * - 1074: 公众号会话下发的小程序消息卡片 - * - 1077: 摇周边 - * - 1078: 连Wi-Fi成功页 - * - 1079: 微信游戏中心 - * - 1081: 客服消息下发的文字链 - * - 1082: 公众号会话下发的文字链 - * - 1084: 朋友圈广告原生页 - * - 1089: 微信聊天主界面下拉,「最近使用」栏(基础库2.2.4版本起包含「我的小程序」栏) - * - 1090: 长按小程序右上角菜单唤出最近使用历史 - * - 1091: 公众号文章商品卡片 - * - 1092: 城市服务入口 - * - 1095: 小程序广告组件 - * - 1096: 聊天记录 - * - 1097: 微信支付签约页 - * - 1099: 页面内嵌插件 - * - 1102: 公众号 profile 页服务预览 - * - 1103: 发现栏小程序主入口,「我的小程序」列表(基础库2.2.4版本起废弃) - * - 1104: 微信聊天主界面下拉,「我的小程序」栏(基础库2.2.4版本起废弃) - */ - scene: SceneValues; - /** shareTicket,详见 [获取更多转发信息]((转发#获取更多转发信息)) */ - shareTicket: string; - /** 当场景为由从另一个小程序或公众号或App打开时,返回此字段 */ - referrerInfo?: ReferrerInfo; - } - - interface PageNotFoundOption { - /** 不存在页面的路径 */ - path: string; - /** 打开不存在页面的 query */ - query: AnyObject; - /** 是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置的分享页面) */ - isEntryPage: boolean; - } - - interface AppInstance { + interface ReferrerInfo { /** - * 生命周期回调—监听应用初始化 + * 来源小程序或公众号或App的 appId + * + * 以下场景支持返回 referrerInfo.appId: + * - 1020(公众号 profile 页相关小程序列表): appId + * - 1035(公众号自定义菜单):来源公众号 appId + * - 1036(App 分享消息卡片):来源应用 appId + * - 1037(小程序打开小程序):来源小程序 appId + * - 1038(从另一个小程序返回):来源小程序 appId + * - 1043(公众号模板消息):来源公众号 appId + */ + appId: string; + /** + * 来源小程序传过来的数据,scene=1037或1038时支持 + */ + extraData?: any; + } + + interface LaunchShowOption { + /** + * 打开小程序的路径 + */ + path: string; + /** + * 打开小程序的query + */ + query: AnyObject; + /** + * 打开小程序的场景值 + * - 1001: 发现栏小程序主入口,「最近使用」列表(基础库2.2.4版本起包含「我的小程序」列表) + * - 1005: 顶部搜索框的搜索结果页 + * - 1006: 发现栏小程序主入口搜索框的搜索结果页 + * - 1007: 单人聊天会话中的小程序消息卡片 + * - 1008: 群聊会话中的小程序消息卡片 + * - 1011: 扫描二维码 + * - 1012: 长按图片识别二维码 + * - 1013: 手机相册选取二维码 + * - 1014: 小程序模板消息 + * - 1017: 前往体验版的入口页 + * - 1019: 微信钱包 + * - 1020: 公众号 profile 页相关小程序列表 + * - 1022: 聊天顶部置顶小程序入口 + * - 1023: 安卓系统桌面图标 + * - 1024: 小程序 profile 页 + * - 1025: 扫描一维码 + * - 1026: 附近小程序列表 + * - 1027: 顶部搜索框搜索结果页「使用过的小程序」列表 + * - 1028: 我的卡包 + * - 1029: 卡券详情页 + * - 1030: 自动化测试下打开小程序 + * - 1031: 长按图片识别一维码 + * - 1032: 手机相册选取一维码 + * - 1034: 微信支付完成页 + * - 1035: 公众号自定义菜单 + * - 1036: App 分享消息卡片 + * - 1037: 小程序打开小程序 + * - 1038: 从另一个小程序返回 + * - 1039: 摇电视 + * - 1042: 添加好友搜索框的搜索结果页 + * - 1043: 公众号模板消息 + * - 1044: 带 shareTicket 的小程序消息卡片 + * - 1045: 朋友圈广告 + * - 1046: 朋友圈广告详情页 + * - 1047: 扫描小程序码 + * - 1048: 长按图片识别小程序码 + * - 1049: 手机相册选取小程序码 + * - 1052: 卡券的适用门店列表 + * - 1053: 搜一搜的结果页 + * - 1054: 顶部搜索框小程序快捷入口 + * - 1056: 音乐播放器菜单 + * - 1057: 钱包中的银行卡详情页 + * - 1058: 公众号文章 + * - 1059: 体验版小程序绑定邀请页 + * - 1064: 微信连Wi-Fi状态栏 + * - 1067: 公众号文章广告 + * - 1068: 附近小程序列表广告 + * - 1069: 移动应用 + * - 1071: 钱包中的银行卡列表页 + * - 1072: 二维码收款页面 + * - 1073: 客服消息列表下发的小程序消息卡片 + * - 1074: 公众号会话下发的小程序消息卡片 + * - 1077: 摇周边 + * - 1078: 连Wi-Fi成功页 + * - 1079: 微信游戏中心 + * - 1081: 客服消息下发的文字链 + * - 1082: 公众号会话下发的文字链 + * - 1084: 朋友圈广告原生页 + * - 1089: 微信聊天主界面下拉,「最近使用」栏(基础库2.2.4版本起包含「我的小程序」栏) + * - 1090: 长按小程序右上角菜单唤出最近使用历史 + * - 1091: 公众号文章商品卡片 + * - 1092: 城市服务入口 + * - 1095: 小程序广告组件 + * - 1096: 聊天记录 + * - 1097: 微信支付签约页 + * - 1099: 页面内嵌插件 + * - 1102: 公众号 profile 页服务预览 + * - 1103: 发现栏小程序主入口,「我的小程序」列表(基础库2.2.4版本起废弃) + * - 1104: 微信聊天主界面下拉,「我的小程序」栏(基础库2.2.4版本起废弃) + */ + scene: number; + /** + * 打开小程序的场景值 + */ + shareTicket: string; + /** + * 当场景为由从另一个小程序或公众号或App打开时,返回此字段 + */ + referrerInfo?: ReferrerInfo; + } + + interface PageNotFoundOption { + /** + * 不存在页面的路径 + */ + path: string; + /** + * 打开不存在页面的 query + */ + query: AnyObject; + /** + * 是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置的分享页面) + */ + isEntryPage: boolean; + } + + interface AppInstance { + /** + * 生命周期回调 监听应用初始化 + * * 应用初始化完成时触发,全局只触发一次。 */ onLaunch?(options?: LaunchShowOption): void; /** - * 生命周期回调—监听应用显示 - * 应用启动,或从后台进入前台显示时 + * 生命周期回调 监听应用显示 + * + * 应用启动,或从后台进入前台显示时触发 */ onShow?(options?: LaunchShowOption): void; /** - * 生命周期回调—监听应用隐藏 - * 应用从前台进入后台时 + * 生命周期回调 监听应用隐藏 + * + * 应用从前台进入后台时触发 */ onHide?(): void; /** * 错误监听函数 - * 应用发生脚本错误,或者 api + * 小程序发生脚本错误或 API 调用报错时触发 + * @param error 错误信息,包含堆栈 */ - onError?(/** 错误信息,包含堆栈 */error?: string): void; + onError?(error: string): void; /** * 页面不存在监听函数 + * * 应用要打开的页面不存在时触发,会带上页面信息回调该函数 * * **注意:** * 1. 如果开发者没有添加 `onPageNotFound` 监听,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面。 * 2. 如果 `onPageNotFound` 回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再回调 `onPageNotFound`。 - * */ - onPageNotFound?(options?: PageNotFoundOption): void; - } - - type AppConstructor = ( - options: AppInstance & T, - ) => void; - - interface GetAppOption { - /** - * 在 `App` 未定义时返回默认实现。当App被调用时,默认实现中定义的属性会被覆盖合并到App中。一般用于独立分包 - */ - allowDefault: boolean; - } - - type GetApp = (opts?: GetAppOption) => AppInstance & T; + onPageNotFound?(options: PageNotFoundOption): void; + /** + * 监听 nvue 页面消息 + * + * nvue 页面使用 `uni.postMessage` 发送消息时触发 + */ + onUniNViewMessage?(options: AnyObject): void; } + type AppConstructor = ( + options: AppInstance & T, + ) => void; + + interface GetAppOption { + /** + * 在 `App` 未定义时返回默认实现。当App被调用时,默认实现中定义的属性会被覆盖合并到App中。一般用于独立分包 + */ + allowDefault: boolean; + } + + type GetApp = (opts?: GetAppOption) => AppInstance & T; +} + declare const getApp: App.GetApp; + +declare const createApp: any; +declare const createPage: any; +declare const createComponent: any; diff --git a/types/uni-app/lib/page.d.ts b/types/uni-app/lib/page.d.ts index 6b2b22b083..62dec36eb7 100644 --- a/types/uni-app/lib/page.d.ts +++ b/types/uni-app/lib/page.d.ts @@ -16,7 +16,7 @@ declare namespace Page { interface PageScrollOption { /** - * 页面在垂直方向已滚动的距离(单位px) + * 页面在垂直方向已滚动的距离(单位 px) */ scrollTop: number; } @@ -27,124 +27,160 @@ declare namespace Page { * 可选值: * - `button`:页面内转发按钮; * - `menu`:右上角转发菜单。 - * */ - from: "button" | "menu" | string; + from: "button" | "menu"; /** * 如果 `from` 值是 `button`,则 `target` 是触发这次转发事件的 `button`,否则为 `undefined` */ target: any; /** - * 页面中包含``组件时,返回当前``的url + * 页面中包含 `` 组件时,返回当前 `` 的url */ webViewUrl?: string; } interface TabItemTapOption { /** - * 被点击tabItem的序号,从0开始 + * 被点击 tabItem 的序号,从0开始 */ index: string; /** - * 被点击tabItem的页面路径 + * 被点击 tabItem 的页面路径 */ pagePath: string; /** - * 被点击tabItem的按钮文字 + * 被点击 tabItem 的按钮文字 + */ + text: string; + } + + interface NavigationBarButtonTapOption { + /** + * 原生标题栏按钮数组的下标 + */ + index: string; + } + + interface BackPressOption { + /** + * - backbutton 顶部导航栏左边的返回按钮或 Android 实体返回键 + * - navigateBack 返回 API,即 uni.navigateBack() + */ + from: 'backbutton' | 'navigateBack'; + } + + interface NavigationBarSearchInputEvent { + /** + * 搜索输入框输入内容 */ text: string; } interface PageInstanceBaseProps { /** - * 到当前页面的路径,类型为`String` + * 到当前页面的路径,类型为 `String` */ route?: string; } interface PageInstance extends PageInstanceBaseProps { /** - * 生命周期回调—监听页面加载 + * 生命周期回调 监听页面加载 + * * 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。 + * @param query 打开当前页面路径中的参数 */ - onLoad?( - /** - * 打开当前页面路径中的参数 - */ - query?: { [queryKey: string]: string }, - ): void; + onLoad?(query?: AnyObject): void; /** - * 生命周期回调—监听页面显示 + * 生命周期回调 监听页面显示 + * * 页面显示/切入前台时触发。 */ onShow?(): void; /** - * 生命周期回调—监听页面初次渲染完成 + * 生命周期回调 监听页面初次渲染完成 + * * 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。 */ onReady?(): void; /** - * 生命周期回调—监听页面隐藏 + * 生命周期回调 监听页面隐藏 + * * 页面隐藏/切入后台时触发。 如 `navigateTo` 或底部 `tab` 切换到其他页面,应用切入后台等。 */ onHide?(): void; /** - * 生命周期回调—监听页面卸载 - * 页面卸载时触发。如`redirectTo`或`navigateBack`到其他页面时。 + * 生命周期回调 监听页面卸载 + * + * 页面卸载时触发。如 `redirectTo` 或 `navigateBack` 到其他页面时。 */ onUnload?(): void; /** * 监听用户下拉动作 - * 监听用户下拉刷新事件。 - * - 需要在`pages.json`的页面配置中开启`enablePullDownRefresh`。 - * - 可以通过`uni.startPullDownRefresh`触发下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。 - * - 当处理完数据刷新后,`uni.stopPullDownRefresh`可以停止当前页面的下拉刷新。 + * - 需要在 `pages.json` 的页面配置中开启 `enablePullDownRefresh` 。 + * - 可以通过 `uni.startPullDownRefresh` 触发下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。 + * - 当处理完数据刷新后,`uni.stopPullDownRefresh` 可以停止当前页面的下拉刷新。 */ onPullDownRefresh?(): void; /** * 页面上拉触底事件的处理函数 - * 监听用户上拉触底事件。 - * - 可以在`pages.json`的页面配置中设置触发距离`onReachBottomDistance`。 + * - 可以在 `pages.json` 的页面配置中设置触发距离 `onReachBottomDistance` 。 * - 在触发距离内滑动期间,本事件只会被触发一次。 */ onReachBottom?(): void; /** * 用户点击右上角转发 + * * 监听用户点击页面内转发按钮(`