You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Emscripten项目自动生成TypeScript类型声明文件?

自动生成Emscripten项目的TypeScript类型声明

当然可以不用手动编写,有几种靠谱的实现方式:

  • 直接用Emscripten内置的类型生成功能
    这是最省心的方案,编译时加上--typescript参数,Emscripten会自动为生成的JS绑定产出对应的.d.ts类型声明文件。命令示例:

    emcc your_source.c -o output.js --typescript
    

    执行完成后,会得到与JS文件同名的类型声明文件,里面包含所有导出的函数、变量、类的类型定义,完全匹配编译出的模块接口。

  • 适配手工绑定场景
    哪怕你用了EM_JS、EM_ASYNC_JS这类手动绑定语法,或是通过EMSCRIPTEN_KEEPALIVE导出C/C++函数,--typescript参数都能识别这些绑定逻辑,自动生成对应类型。比如你在C代码里写了一个加法函数:

    #include <emscripten.h>
    
    EMSCRIPTEN_KEEPALIVE
    int add(int a, int b) {
      return a + b;
    }
    

    编译后生成的.d.ts文件里会自动出现:

    export function add(a: number, b: number): number;
    
  • 处理C++类等复杂结构
    如果项目需要导出C++类,配合--bind参数和--typescript就能生成完整的类类型声明。比如编译命令:

    emcc your_class.cpp -o class_module.js --bind --typescript
    

    生成的声明文件会包含类的构造函数、成员方法、属性的准确类型定义,直接就能在TS代码中调用。

  • 第三方工具补充(可选)
    要是Emscripten原生生成的声明存在遗漏,可以试试dts-gen反向生成类型。先安装工具,再执行:

    dts-gen -m ./output.js
    

    不过这种方法是静态分析JS代码,不如Emscripten原生生成的准确,只建议作为临时补充手段。

内容的提问来源于stack exchange,提问作者starball

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 21:29:55