▶_MiniApp Toolkit

minigame-api-typings

工具

微信官方小游戏 TypeScript 类型定义文件,覆盖全部 wx.* 小游戏 API,支持智能提示与编译期类型检查,与基础库版本同步更新

TypeScript微信小游戏类型定义官方DX

详细文档

minigame-api-typings — 微信小游戏 TypeScript 类型定义#

资源概述#

minigame-api-typings 是微信官方维护的 TypeScript 类型定义文件,覆盖微信小游戏全部 wx.* API。它是 miniprogram-api-typings(小程序版)的姊妹项目,专门为微信小游戏开发场景提供编译期类型检查和编辑器智能提示。

与小程序 API 类型定义不同,小游戏拥有独特的 API 体系——开放数据域(wx.getOpenDataContext)、游戏圈(wx.createGameClubButton)、关系链(wx.getFriendCloudStorage)、性能监控(wx.getPerformanceInfo)、帧率控制(wx.setPreferredFramesPerSecond)等——这些 API 在本类型定义中均有完整的类型覆盖。

GitHub Stars: 161 · Forks: 27 · 许可证: MIT · npm: minigame-api-typings v3.8.21(44 versions)

核心价值#

  • 全量覆盖:覆盖微信小游戏所有客户端 API,包括游戏特有 API
  • 参数类型:每个 API 的参数对象和返回值都有精确类型定义
  • 自动生成:API 定义文件(lib.wx.api.d.ts)随官方文档自动生成,保证与最新 API 同步
  • tsd 测试:使用 tsd 进行类型测试,所有测试样例在 test/ 目录下,CI 自动验证
  • 三斜杠支持:支持 /// <reference path="..." />tsconfig.json types 两种引用方式

设计规范#

类型定义不涉及 UI 设计规范,但通过类型约束间接提升代码质量:

  • 参数合规:编译时发现 API 调用参数错误(缺少必填字段、类型不匹配)
  • 回调安全:回调函数参数有类型定义,避免访问不存在属性
  • 枚举值:API 的枚举参数使用字面量联合类型(如 dataType: 'json'),防止拼写错误
  • 小游戏特有类型:开放数据域接口、游戏圈按钮、激励视频广告等都有完整类型

审核规范#

类型定义不影响小游戏审核流程。

开发指南#

快速上手#

code
// tsconfig.json
{
  "compilerOptions": {
    "types": ["minigame-api-typings"],
    "target": "ES2017",
    "module": "CommonJS",
    "strict": true
  }
}

// game.ts — 直接使用 wx.* API,享受智能提示
const systemInfo = wx.getSystemInfoSync();
console.log(systemInfo.screenWidth, systemInfo.screenHeight);

// 设置帧率(小游戏特有 API)
wx.setPreferredFramesPerSecond(60);

// 开放数据域通信
const openDataContext = wx.getOpenDataContext();
openDataContext.postMessage({
  command: 'getFriendData',
  type: 'rank'
});

// 激励视频广告
const rewardedAd = wx.createRewardedVideoAd({
  adUnitId: 'adunit-xxxxxxxxxxxxx'
});
rewardedAd.onError(err => {
  console.error('广告加载失败:', err.errMsg);
});
rewardedAd.onClose(res => {
  if (res.isEnded) {
    console.log('用户看完广告,发放奖励');
  }
});

三斜杠引用方式#

code
// 如果不想在 tsconfig.json 中配置 types,可以用三斜杠指令
/// <reference path="node_modules/minigame-api-typings/index.d.ts" />

// 或者用 import 方式
import 'minigame-api-typings';

与 miniprogram-api-typings 的区别#

维度minigame-api-typingsminiprogram-api-typings
适用场景微信小游戏微信小程序
页面路由无(小游戏无页面栈)wx.navigateTo / switchTab 等
开放数据域✅ wx.getOpenDataContext❌ 不适用
游戏圈✅ wx.createGameClubButton❌ 不适用
关系链✅ wx.getFriendCloudStorage❌ 不适用
帧率控制✅ wx.setPreferredFramesPerSecond❌ 不适用
DOM API✅ wx.createImage / wx.createCanvas部分支持
文件系统✅ wx.getFileSystemManager✅ 相同

常见陷阱#

  1. 小游戏 vs 小程序:两个类型定义不可混用,小游戏项目用 minigame-api-typings,小程序项目用 miniprogram-api-typings
  2. 自动生成:API 定义文件(lib.wx.api.d.ts)是随官方文档自动生成的,不要直接修改——发现问题请提 issue
  3. types 配置冲突:如果 tsconfig.json 同时配置了多个 types,可能出现类型冲突。小游戏项目建议只配置 ["minigame-api-typings"]
  4. 开放数据域:开放数据域代码需要单独的类型配置,开放数据域 API 子集与主域 API 不同
  5. 版本同步:类型定义与基础库版本同步,使用最新 API 时需确保类型定义版本足够新

生态资源#

官方资源#

姊妹项目#

  • miniprogram-api-typings:微信小程序 TypeScript 类型定义(已收录)
  • minigame-canvas-engine:微信官方 Canvas 渲染引擎(开放数据域 UI 开发)
  • minigame-tuanjie-transform-sdk:微信官方 Unity/团结引擎小游戏适配

开发工具#

  • 微信开发者工具:内置小游戏模拟器和调试器
  • TypeScript:搭配 strict: true 获得最佳类型检查效果
  • VSCode:通过 tsconfig.json types 配置自动获取智能提示

版本更新#

  • npm v3.8.21(44 versions):持续更新中
  • 最近 push:2026-07-27(极度活跃)
  • API 定义文件由官方文档自动生成,保证与最新基础库 API 同步
  • 微信官方团队维护,通过 GitHub Actions CI 自动测试