Intro to TS
TypeScript(简称 TS)是微软公司开发的一种基于 JavaScript (简称 JS)语言的编程语言。
它的目的并不是创造一种全新语言,而是增强 JavaScript 的功能,使其更适合多人合作的企业级项目。
TypeScript 可以看成是 JavaScript 的超集(superset),即它继承了后者的全部语法,所有 JavaScript 脚本都可以当作 TypeScript 脚本(但是可能会报错),此外它再增加了一些自己的语法。
TypeScript 对 JavaScript 添加的最主要部分,就是一个独立的类型系统。
然而,由于前端环境的特殊性,浏览器是只能执行 JS 文件的,TS 一方面相比 JS 诞生要晚得多,另一方面也有它是由微软,而非公共技术组织维护的原因。因此,如果 TypeScript 仅仅只做了添加类型这件事情,那么其实是完全没意义的——辛辛苦苦写完,发现浏览器完全不认,那就很头疼了。
因此,TypeScript 还需要能够被转换为 JavaScript 才能为开发者所接受,类似的,一门基于另一门的编程语言(比如基于 C 语言的 Python 与 Lua,基于 Java 的 Kotlin 与 Scala 等等),也大多都拥有这种编译为自己基于的语言的能力。
而在从 TypeScript 编译到 JavaScript 的过程中,TypeScript 团队提供了 tsc 这个编译工具(它是在安装 TypeScript 的同时就会一起被安装的),它能将 TS 中的类型擦除,而擦除了类型之后,剩下的就是原汁原味的 JS 代码了。(现在微软用Go语言重写了一个编译器:Typescript-Go)
由于JS 的迭代效率实在是太慢了(要使用Typescript语法,就需要引入 Babel,包括找到插件,配置插件,然后给原来开箱即用的代码加一道编译工序...),Typescript 团队引入了自己的配置文件 tsconfig.json,用于进行编译等等能力的配置,也就提供了比如降级到哪个 ES 版本,使用哪种模块(CommonJs、ES Module、UMD、IIFE ...)等等信息。
总而言之,如果我们进行一个简单的概括:
TypeScript = JavaScript + 类型 + Babel