TypeScript 简介
以下将
TypeScript
简称为TS
,JavaScript
简称为JS
TS
是由微软公司开发, 基于JS
的一个扩展语言TS
包含了JS
的所有内容, 即:TS
是JS
的超集TS
增加了: 静态类型检查, 接口, 泛型等很多现代开发特性, 因此更适合大型项目开发TS
需要编译为JS
, 然后交给浏览器或者其他JS
运行环境执行
为何使用 TS
今非昔比的 JS
- JS 诞生时的定位是浏览器脚本语言, 用于在网页中嵌入一些简单的逻辑, 而且代码量很少
- 随着时间的推移, JS 变得越来越流行, 如今的 JS 已经可以进行全栈编程了
- 现如今的 JS 应用场景比以前丰富得多, 代码量也比当年大很多, 随便一个 JS 项目的代码量, 可以轻松达到几万行甚至更多
- 然而 JS 当年出生简陋, 没考虑到如今的应用场景和代码量, 逐渐就出现很多困扰
JS 中的困扰
以下
JS
代码放到TS
文件中会之间爆红提示报错
- 不清不楚的数据类型
js
let welcome = 'hello'
welcome() // 报错: TypeError: welcome is not a function
- 有漏洞的逻辑
js
const str = Date.now() % 2 ? '奇数' : '偶数'
if (str !== '奇数') {
alert('Halo')
} else if (str === '偶数') { // 此条件永远不会成立
alert('World')
}
- 访问不存在的属性
js
const obj = { width: 10, height: 15 }
const area = obj.width * obj.weight // 不存在的属性
- 低级的拼写检查
js
const msg = 'Halo World'
msg.toUperCase() // 没有拼写检查
静态类型检查
- 在代码运行前进行检查, 发现代码的错误或者不合理之处, 减少运行时异常出血的几率, 这种检查称为静态类型检查,
TS
的核心就是静态类型检查, 简而言之就是将运行时的错误前置 - 同样的功能,
TS
的代码量要大于JS
, 但由于TS
的代码结构更加清晰, 在后期代码的维护中TS
远胜于JS