一、TypeScript 与 JavaScript 的关系
JavaScript 由最初作为浏览器一种简单的脚本语言,发展到现在可以在浏览器范围之外使用。而每个语言都有一些自己奇奇怪怪的地方,好比如下:
if ("" == 0) { // true
// 但是为什么呢?
}
if (1 < x < 3) {
// 中间的 x 填任何值都将返回 true!
}
当像这些奇奇怪怪的地方充斥在成千上万行代码里面的时候,将会变成一个非常严重的问题。这时候,为了让我们能更快的定位到错误所在,并且尽可能的去避免它,TypeScript 出现了。
二、TypeScript —— 静态类型检查器
TypeScript 是一种语言,是 Javascript 的超集(简单来说,就是 JS 能干的,TS 都能干)。TypeScript 更像是给 Javascript 加了一重保险,它会在代码执行之前先检查该程序是否有错误。以下是几种 TypeScript 会检查的种类:
-
语法
let a = (4; // ')' expected.
-
类型
console.log(4 / []);
// JavaScript: Infinity;
// TypeScript: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.(算术运算的右侧必须是'any'、'number'、'bigint'或枚举类型。)
正如前面所说,TypeScript 只是一个静态类型检查器,所以它并不会影响到你的程序运行,即使它认为你的代码有问题。而且在编译完成之后,它就会擦除掉因它编写所需的定义代码,返回的就是普通的JS代码。