@heybox/hb-sdk API Reference - v0.9.5
    正在准备搜索索引...

    函数 isMiniProgramMediaPickPayload

    • 判断未知值是否具有 media.pick payload 的最低 wire 结构。

      参数

      • value: unknown

        来自 App-facing 参数、bridge request 或其他不可信边界的候选 payload。undefined 表示调用方省略整个 payload,会通过本 guard 并使用全部缺省值。

      返回 value is MediaPickPayload

      值满足 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 字段定义。

      0.9.3