如何在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.jsts-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.jsonprogram 字段的不一致,或者忘了生成 .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响应格式化【技巧】