0

0

如何用vscode进行TypeScript开发_配置编译与类型检查流程【教程】

紅蓮之龍

紅蓮之龍

发布时间:2026-01-17 18:40:53

|

980人浏览过

|

来源于php中文网

原创

VS Code 对 TypeScript 支持开箱即用但不自动编译,需配置 tsconfig.json 并启用 tsc --watch 任务;严格模式、正确 outDir、exclude 和 moduleResolution 等设置确保开发与类型检查兼顾,保存即编译需配置 tasks.json 并重启 TS Server。

如何用vscode进行typescript开发_配置编译与类型检查流程【教程】

VS Code 对 TypeScript 的支持开箱即用,但默认不自动编译、不强制类型检查、不生成 js 文件——这些必须手动配。核心在于搞清 tsconfig.json 和 VS Code 的 tsc 任务分工。

为什么保存后没生成 .js 文件?

VS Code 自带的 TS 语言服务只做编辑时的类型提示和错误高亮,不运行编译器。要生成 JS,必须调用 tsc(TypeScript Compiler)。

  • tsc 默认是“一次性编译”:运行一次,编译所有文件,然后退出
  • 开发中更常用的是 tsc --watch 模式:监听文件变化,自动重新编译
  • VS Code 可以把 tsc --watch 配成一个后台任务,保存即生效
  • 前提是项目根目录有有效的 tsconfig.json,否则 tsc 不知道从哪开始、编译到哪去

如何配置 tsconfig.json 才能兼顾开发与类型检查?

别直接用 tsc --init 生成后就不管。默认配置太宽松,比如 "noImplicitAny": false 会掩盖大量潜在类型错误。

  • 至少开启:"strict": true(等价于启用 noImplicitAnystrictNullChecks 等一整套)
  • 指定输出目录:"outDir": "./dist",避免 JS 和 TS 混在同一目录
  • 排除非源码文件:"exclude": ["node_modules", "dist"]
  • 如果用 ES 模块(import/export),加上:"module": "ESNext""target": "ES2020"
  • 若需在 Node.js 运行,加:"moduleResolution": "node""types": ["node"]
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "lib": ["ES2020", "DOM"],
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "moduleResolution": "node",
    "types": ["node"]
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

怎么让 VS Code 在保存时自动编译并报错?

靠两层机制叠加:TS 语言服务实时检查 + tsc --watch 后台编译。两者独立运行,但都依赖 tsconfig.json

来福FM
来福FM

来福 - 你的私人AI电台

下载
  • 类型错误会实时显示在 VS Code 编辑器底部状态栏和问题面板(Ctrl+Shift+M
  • 要启用保存即编译,打开命令面板(Ctrl+Shift+P),运行 Tasks: Configure Task → 选择 tsc: watch
  • 这会生成 .vscode/tasks.json,确保其中 "isBackground": true"problemMatcher": ["$tsc-watch"] 存在
  • 启动任务:Ctrl+Shift+PTasks: Run Task → 选 tsc: watch;之后保存 TS 文件,dist 目录就会更新
  • 注意:tsc --watch 不会重新检查已关闭的文件,所以保持文件打开或重启 watcher

常见报错和对应处理方式

不是所有红色波浪线都要立刻改——得看来源。VS Code 底部状态栏会显示是「TS Server」还是「tsc」报的错。

  • Cannot find module 'xxx':多半是缺少 @types/xxx,或 types 字段没包含该包
  • Property 'xxx' does not exist on type 'yyy':接口定义缺失,或对象字面量没显式标注类型(如 const obj: MyType = { ... }
  • 编辑器里没报错,但终端跑 tsc 报错:说明 VS Code 正在用旧版本 TS Server,点击右下角 TS 版本号 → 选择 “Use Workspace Version”
  • 修改 tsconfig.json 后不生效:重启 TS Server(Ctrl+Shift+PTypeScript: Restart TS server

最易被忽略的一点:VS Code 的类型检查和 tsc 编译虽然共享配置,但各自维护缓存。改完 tsconfig.json 或装了新类型包,务必重启 TS Server,否则编辑器里看着正常,实际编译会失败。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

412

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

524

2023.09.20

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1022

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

65

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

418

2025.12.29

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.5万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号