TypeScript - 概述



JavaScript 最初被引入作为客户端语言。Node.js 的开发也标志着 JavaScript 成为一种新兴的服务器端技术。然而,随着 JavaScript 代码的增长,它往往会变得越来越混乱,难以维护和重用代码。此外,它未能采用面向对象特性、强类型检查和编译时错误检查,阻止了 JavaScript 作为成熟的服务器端技术在企业级应用中的成功。TypeScript 的出现正是为了弥补这一差距。

什么是 TypeScript?

根据定义,“TypeScript 是用于应用程序规模开发的 JavaScript”。

TypeScript 是一种强类型的、面向对象的、编译型语言。它由微软的Anders Hejlsberg(C# 的设计者)设计。TypeScript 既是一种语言,也是一组工具。TypeScript 是 JavaScript 的一个类型化超集,编译成 JavaScript。换句话说,TypeScript 是 JavaScript 加上一些额外的特性。

TypeScript Figure

TypeScript 的特性

TypeScript 本质上就是 JavaScript。TypeScript 从 JavaScript 开始,最终也转换为 JavaScript。TypeScript 采用 JavaScript 中程序的基本构建块。因此,你只需要了解 JavaScript 就可以使用 TypeScript。所有 TypeScript 代码都会转换为其 JavaScript 等效代码以进行执行。

TypeScript 支持其他 JS 库。编译后的 TypeScript 可以被任何 JavaScript 代码使用。TypeScript 生成的 JavaScript 可以重用所有现有的 JavaScript 框架、工具和库。

JavaScript 就是 TypeScript。这意味着任何有效的.js 文件都可以重命名为.ts 并与其他 TypeScript 文件一起编译。

TypeScript 是可移植的。TypeScript 可跨浏览器、设备和操作系统移植。它可以在任何 JavaScript 运行的环境中运行。与其他语言不同,TypeScript 不需要专用的虚拟机或特定的运行时环境来执行。

TypeScript 和 ECMAScript

ECMAScript 规范是脚本语言的标准化规范。已经发布了六个版本的 ECMA-262。第 6 版标准的代号为“Harmony”。TypeScript 与 ECMAScript 6 规范保持一致。

TypeScript and ECMAScript

TypeScript 的基本语言特性来自 ECMAScript 5 规范,即 JavaScript 的官方规范。TypeScript 的语言特性,如模块和基于类的面向对象编程,符合 EcmaScript 6 规范。此外,TypeScript 还包含泛型和类型注解等特性,而这些特性并非 EcmaScript 6 规范的一部分。

为什么要使用 TypeScript?

TypeScript 比其他同类语言(如 CoffeeScript 和 Dart 编程语言)更胜一筹,因为它扩展了 JavaScript。相比之下,Dart、CoffeeScript 等语言本身就是新的语言,需要特定语言的执行环境。

TypeScript 的优势包括:

  • 编译 - JavaScript 是一种解释型语言。因此,需要运行它才能测试其有效性。这意味着你编写所有代码只是为了发现没有输出,如果存在错误的话。因此,你必须花费数小时的时间来查找代码中的错误。TypeScript 编译器提供了错误检查功能。如果 TypeScript 发现任何语法错误,它将编译代码并生成编译错误。这有助于在脚本运行之前突出显示错误。

  • 强大的静态类型 - JavaScript 不是强类型语言。TypeScript 通过 TLS(TypeScript 语言服务)提供可选的静态类型和类型推断系统。未声明类型的变量的类型可以由 TLS 根据其值推断。

  • TypeScript 支持现有 JavaScript 库的类型定义。TypeScript 定义文件(扩展名为.d.ts)为外部 JavaScript 库提供定义。因此,TypeScript 代码可以包含这些库。

  • TypeScript 支持面向对象编程的概念,如类、接口、继承等。

TypeScript 的组成部分

TypeScript 主要包含以下三个组件:

  • 语言 - 它包括语法、关键字和类型注解。

  • TypeScript 编译器 - TypeScript 编译器 (tsc) 将 TypeScript 编写的指令转换为其 JavaScript 等效代码。

  • TypeScript 语言服务 - “语言服务”在核心编译器管道周围提供了一个额外的层,用于类似编辑器的应用程序。语言服务支持典型编辑器操作的常用集合,例如语句完成、签名帮助、代码格式化和概述、颜色设置等。

TypeScript Components

声明文件

当 TypeScript 脚本编译时,可以选择生成一个声明文件(扩展名为.d.ts),它充当已编译 JavaScript 中组件的接口。声明文件的概念类似于 C/C++ 中的头文件。声明文件(扩展名为.d.ts 的文件)为 JavaScript 库(如 jQuery、MooTools 等)提供类型、函数调用和变量的智能提示。

广告