来自 App-facing 参数、bridge request 或其他不可信边界的候选 payload。undefined
表示调用方省略整个 payload,会通过本 guard 并使用全部缺省值。
值满足 MediaPickPayload 的枚举、取值范围和键集合约束时返回 true,并将
TypeScript 类型收窄为 payload 类型;否则返回 false。
对通常的对象字面量,仅允许 source、mediaType、maxCount 三个 canonical key:
source 可省略或为 album / camera;mediaType 可省略或为 image / video / all。maxCount 可省略,或为 1–20 的安全整数。0、负数、小数、NaN、Infinity、unsafe integer、
bigint 和数字字符串都会被拒绝。source === 'camera' 且提供 maxCount 时,只接受 1;大于 1 的值在此处即可拒绝,
Runtime 不应静默收窄。该 guard 只建立结构类型收窄,不应用缺省值、不证明 media 权限已声明或启用、不检查可信用户手势、
不确认 Host 支持 media.pick,也不保证系统选择器一定交付 maxCount 项。all 仅表示图片与视频,
不包含音频或任意文件。
import { isMiniProgramMediaPickPayload } from '@heybox/hb-sdk/protocol';
isMiniProgramMediaPickPayload(undefined); // true:使用全部缺省值
isMiniProgramMediaPickPayload({ source: 'album', maxCount: 20 }); // true
isMiniProgramMediaPickPayload({ source: 'camera', maxCount: 2 }); // false:相机只能单选
MediaPickPayload wire 字段定义。
判断未知值是否具有
media.pickpayload 的最低 wire 结构。