
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'),防止拼写错误 - 小游戏特有类型:开放数据域接口、游戏圈按钮、激励视频广告等都有完整类型
审核规范#
类型定义不影响小游戏审核流程。
开发指南#
快速上手#
// 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('用户看完广告,发放奖励');
}
});
三斜杠引用方式#
// 如果不想在 tsconfig.json 中配置 types,可以用三斜杠指令
/// <reference path="node_modules/minigame-api-typings/index.d.ts" />
// 或者用 import 方式
import 'minigame-api-typings';
与 miniprogram-api-typings 的区别#
| 维度 | minigame-api-typings | miniprogram-api-typings |
|---|---|---|
| 适用场景 | 微信小游戏 | 微信小程序 |
| 页面路由 | 无(小游戏无页面栈) | wx.navigateTo / switchTab 等 |
| 开放数据域 | ✅ wx.getOpenDataContext | ❌ 不适用 |
| 游戏圈 | ✅ wx.createGameClubButton | ❌ 不适用 |
| 关系链 | ✅ wx.getFriendCloudStorage | ❌ 不适用 |
| 帧率控制 | ✅ wx.setPreferredFramesPerSecond | ❌ 不适用 |
| DOM API | ✅ wx.createImage / wx.createCanvas | 部分支持 |
| 文件系统 | ✅ wx.getFileSystemManager | ✅ 相同 |
常见陷阱#
- 小游戏 vs 小程序:两个类型定义不可混用,小游戏项目用 minigame-api-typings,小程序项目用 miniprogram-api-typings
- 自动生成:API 定义文件(
lib.wx.api.d.ts)是随官方文档自动生成的,不要直接修改——发现问题请提 issue - types 配置冲突:如果 tsconfig.json 同时配置了多个 types,可能出现类型冲突。小游戏项目建议只配置
["minigame-api-typings"] - 开放数据域:开放数据域代码需要单独的类型配置,开放数据域 API 子集与主域 API 不同
- 版本同步:类型定义与基础库版本同步,使用最新 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 自动测试