TypeScript入门 2--代码调试
2024-08-27 11:32:20
代码调试(debug)是日常开发中必不可少的手段之一,无法进行代码调试会让我们痛苦不已,本文主要介绍如何调试TypeScript代码
很多刚接触TypeScript的人或许有疑问,我们编写的TypeScript编译成JavaScript,在html中引用的是编译后的JavaScript,这样代码报错的地方就和实际开发ts对应不上,这怎么调试?
我们可以采用Source Map
Source Map是什么
如今前端技术飞速发展,一不留神就落后了。JS变得越来越复杂(压缩,文件合并,其它语言编译成Js),导致实际运行的代码和开发态的代码不一致,调试困难,于是Source Map出现了。
简单地说Source Map就是一个文件,里面是转换代码的代码位置和转换前的代码位置的映射信息,这样当前程序报错时,我们可以找到开发态代码位置。
如何生成Source Map
TypeScript在编译时可以同附带参数生成,命令如下:
tsc --sourcemap Person.ts
执行后,会在同目录下生成名为Person.js.map
文件,这就是Source Map文件,内容如下:
{
"version": 3,
"file": "Person.js",
"sourceRoot": "",
"sources": [
"Person.ts"
],
"names": [],
"mappings": "AAAA;IAGI,gBAAY,IAAW,EAAE,GAAU;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,oBAAG,GAAH;QACI,MAAM,CAAI,IAAI,CAAC,IAAI,YAAO,IAAI,CAAC,GAAG,eAAY,CAAC;IACnD,CAAC;IACL,aAAC;AAAD,CAAC,AAXD,IAWC;AAED,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAElC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC"
}
该文件是一个json格式,分别记录编译前文件和编译后文件信息,至于文件内容究竟是何含义,我们就不深究了,有兴趣的可以阅读阮一峰老师的文章JavaScript Source Map 详解
Source Map如何使用
目前,暂时只有Chrome浏览器支持这个功能。在Developer Tools的Setting设置中,确认选中"Enable source maps"。
同时需要在编译的js代码加上以后信息(编译时已自动加上了)
//# sourceMappingURL=Person.js.map
注意Person.js.map
是一个路径,Source Map文件可以是本地文件,也可以是网络文件
这样可以了像调试js代码一样调试TypesSript了
参考文章
最新文章
- SQL Server-数据类型(七)
- Python traceback【转】
- [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)
- Basic linux command
- Bootstrap 轮播插件
- 面向对象分析设计-------02UML+UML各种图形及作用
- 调用MYSQL存储过程实例
- memcached vs MySQL Memory engine table 速度比较_XMPP Jabber即时通讯开发实践_百度空间
- WeQuant交易策略—KDJ
- Python爬虫入门教程 31-100 36氪(36kr)数据抓取 scrapy
- 15树莓派安装图形界面截图工具Shutter
- 联想x3650m5服务器安装windows2008R2系统
- vivox23幻彩版手机怎么设置双击息屏
- python 方法调用
- ios-静态库,动态库,framework浅析(一)
- Hibernate left join
- weblogic 12C 安全加强:更改Console及管理端口
- 好记性不如烂笔头-linux学习笔记6keepalived实现主备操作
- 20155236 《信息安全概论》实验二(Windows系统口令破解)实验报告
- Python如何判断变量的类型
热门文章
- javascript面向对象一:函数
- UILabel的抗压缩、抗拉伸、以及控件的约束简述
- ELK 日志分析体系
- iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
- oracle 11g odbc连接串及配置
- 单片机modebus RTU通信实现,采用C语言,可适用于单片机,VC,安卓等(转)
- ecshop--标签数组
- IOS开发中数据持久化的几种方法--NSUserDefaults
- [git] 细说commit (git add/commit/diff/rm/reset 以及 index 的概念)
- Python3基础 frozenset() 创建一个不可更改的集合