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

TypeScript编译Express报错:Property 'raw'不存在于typeof e类型

问题根因

express.raw() 是 Express 4.17.0 版本才正式加入的内置请求体解析中间件,你当前使用的 4.16.4 版本本身未提供该方法,你参考的开发示例均基于 4.17.0 及以上版本编写,因此会出现运行时方法不存在、TypeScript 编译报属性缺失的错误。

你遇到的编译报错:

Typescript compile error: Property 'raw' does not exist on type 'typeof e' on express

本质就是当前安装的 Express 版本、对应的 TS 类型定义包都不包含这个方法的声明和实现。

可行解决方案

根据你是否愿意升级 Express 版本,二选一即可:

  • 方案1:升级 Express 到兼容版本
    4.x 系列版本为向下兼容版本,升级到 4.17.0 以上的最新稳定版不会引入破坏性变更,执行以下命令升级核心包和类型定义:

    npm install express@^4.18.2
    npm install -D @types/express@^4.17.21
    

    升级完成后清空 TS 编译缓存、重启 IDE 即可正常使用,你之前写的配置参数不需要修改:

    // 可直接正常使用
    app.use(express.raw({ type: 'application/json' }))
    
  • 方案2:不升级 Express,使用独立的 body-parser 包实现相同能力
    Express 4.x 的内置请求体解析能力本质是对body-parser包的封装,4.17 之前的版本没有把 raw 解析器暴露到 express 顶层对象上,你可以直接安装独立的 body-parser 包实现完全一致的能力:
    先安装依赖和对应类型:

    npm install body-parser
    npm install -D @types/body-parser
    

    在代码中引入后直接使用,参数、解析行为和express.raw()完全一致:

    import bodyParser from 'body-parser'
    // 注册raw请求体解析中间件
    app.use(bodyParser.raw({ type: 'application/json' }))
    
常见问题排查

如果升级版本后仍然报相同的 TS 错误,先执行tsc --build --clean清空项目编译缓存,再重启 TS 语言服务即可,属于类型缓存未更新的常见问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:28:04