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

Angular 8执行ng serve启动时报TS1144语法错误如何解决

问题现象

运行ng serve启动Angular 8.2.0项目时抛出如下编译错误:

ERROR in ../node_modules/@types/node/assert.d.ts:3:68 - error TS1144: '{' or ';' expected

项目核心依赖版本:

Angular CLI: 8.2.0
本地运行Node版本: 14.19.1
项目TypeScript版本: 3.4.5
项目@types/node依赖版本: ^14.14.31
错误原因

核心原因是依赖版本不兼容:

  • Angular 8.2.0官方配套的TypeScript版本范围是3.4.x~3.5.x,这个版本的TypeScript不支持高版本@types/node里使用的新型TypeScript语法。
  • 当前安装的@types/node@14.x是为更高版本TypeScript编写的类型定义,TS 3.4.5解析这些类型文件时无法识别新语法,直接抛出语法解析错误。
修复方案

优先选择改动成本最低的方案:

  • 降级@types/node到兼容TS 3.4.x的版本,推荐使用12.x最终稳定版,操作步骤如下:
    1. 卸载当前不兼容的@types/node依赖:
      npm uninstall @types/node --save-dev
      
    2. 安装兼容版本:
      npm install @types/node@12.20.55 --save-dev
      
    3. 删除项目根目录下的node_modules文件夹、包管理锁文件(package-lock.json或yarn.lock),重新执行npm install安装依赖后,再运行ng serve即可正常启动。

其他可选方案(改动成本较高,老项目不推荐):

  • 整体升级Angular、TypeScript版本到适配Node 14和@types/node@14.x的版本(Angular 12+),需要同步修改项目中不兼容的API语法。
  • 降级本地Node运行版本到12.x,搭配对应版本的@types/node,缺点是会影响本地其他依赖高版本Node的项目运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:30:52