如何在VSCode中配置并运行TypeScript项目【教程】
发布时间 - 2026-01-16 00:00:00 点击率:次VSCode仅编辑并调用TypeScript编译器,实际编译依赖本地tsc或Node.js;需安装tsc、配置tsconfig.json(含outDir、sourceMap等)、用ts-node运行及配置launch.json实现断点调试。
vscode 本身不运行 typescript,它只负责编辑和调用 tsc 或构建工具;真正编译和执行靠的是本地安装的 typescript 编译器或 node.js 运行时。
确认已全局或本地安装 tsc
运行 tsc --version 是验证配置是否可行的第一步。如果报错 command not found 或 无法识别的命令,说明 TypeScript 编译器没装好。
- 推荐使用项目级安装:
npm init -y && npm install --save-dev typescript,然后通过npx tsc调用 - 全局安装(不推荐):
npm install -g typescript,容易因版本混用导致tsconfig.json行为不一致 - VSCode 的 TS 插件(如内置的 “TypeScript and JavaScript Language Features”)依赖本地
node_modules/.bin/tsc,找不到时会回退到全局,但不可靠
初始化 tsconfig.json 并理解关键字段
直接运行 npx tsc --init 生成基础配置。很多问题源于默认配置未适配运行目标 —— 比如你写的是 Node.js 脚本,但 "target" 是 "ES2017"、"module" 是 "commonjs",这没问题;但若设成 "ESNext" + "NodeNext",就要求 Node.js ≥18.12 且启用 "type": "module",否则运行时报错 ERR_REQUIRE_ESM。
-
"outDir"必须设置,否则编译文件和源码混在一起,热重载/调试易出错 -
"rootDir"建议显式指定,避免tsc自动向上查找导致意外包含node_modules或配置文件 -
"sourceMap"开启后才能在 VSCode 里断点调试.ts文件(配合launch.json)
用 ts-node 直接运行 .ts 文件(跳过手动编译)
开发阶段不想每次改完都 npx tsc && node ./dist/index.js?ts-node 是更顺手的选择,但它不是编译器替代品,而是运行时转译,性能和类型检查能力弱于 tsc。
- 安装:
npm
install --save-dev ts-node @types/node
- 运行单文件:
npx ts-node src/index.ts - 支持
tsconfig.json,但部分选项(如"composite"、"incremental")会被忽略 - 注意:
ts-node默认不校验类型错误(只做转译),加--transpile-only会彻底关掉类型检查;如需边跑边报错,用npx ts-node --no-cache --files src/index.ts
配置 launch.json 实现断点调试
VSCode 调试 TypeScript 的核心是让 Debugger 知道如何把 .ts 映射回生成的 .js 和 .js.map。光有 sourceMap: true 不够,launch.json 的路径解析也必须匹配。
- 确保
tsconfig.json中"outDir"和"sourceMap"已启用 - 在项目根目录创建
.vscode/launch.json,内容如下:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"console": "integratedTerminal",
"skipFiles": ["/**"]
}
]
}
再在 package.json 加脚本:"dev": "ts-node --project ./tsconfig.json src/index.ts"。这样断点才能落在 .ts 行上,而不是编译后的 .js。
最常被忽略的是 "outDir" 路径与 launch.json 中 program 字段的不一致,或者忘了生成 .map 文件 —— 这会导致 VSCode 显示“断点未绑定”,但不会报错提醒。
# javascript
# java
# vscode
# js
# node.js
# json
# node
# typescript
# npm
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何快速搭建高效简练网站?
javascript日期怎么处理_如何格式化输出
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
如何用VPS主机快速搭建个人网站?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
如何基于云服务器快速搭建网站及云盘系统?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
iOS UIView常见属性方法小结
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
利用vue写todolist单页应用
简历没回改:利用AI润色让你的文字更专业
如何在Windows服务器上快速搭建网站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
实例解析Array和String方法
Laravel定时任务怎么设置_Laravel Crontab调度器配置
python中快速进行多个字符替换的方法小结
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
移动端脚本框架Hammer.js
如何用IIS7快速搭建并优化网站站点?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
香港服务器建站指南:免备案优势与SEO优化技巧全解析
*服务器网站为何频现安全漏洞?
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Laravel怎么实现模型属性的自动加密
魔毅自助建站系统:模板定制与SEO优化一键生成指南
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
微信小程序 wx.uploadFile无法上传解决办法
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel如何使用Service Container和依赖注入?(代码示例)
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
BootStrap整体框架之基础布局组件
如何确保西部建站助手FTP传输的安全性?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
高端网站建设与定制开发一站式解决方案 中企动力
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Laravel如何实现多对多模型关联?(Eloquent教程)
C++时间戳转换成日期时间的步骤和示例代码
Python并发异常传播_错误处理解析【教程】
高端建站如何打造兼具美学与转化的品牌官网?
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】


