TypeScript - 概述


JavaScript 被引入作为客户端语言。 Node.js 的发展也标志着 JavaScript 成为一种新兴的服务器端技术。 然而,随着 JavaScript 代码的增长,它往往会变得更加混乱,从而导致代码的维护和重用变得困难。 此外,它未能接受面向对象、强类型检查和编译时错误检查的功能,这使得 JavaScript 无法作为成熟的服务器端技术在企业级取得成功。 TypeScript 的出现就是为了弥补这一差距。

什么是 TypeScript?

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

TypeScript 是一种强类型、面向对象的编译语言。 它是由 Microsoft 的 Anders Hejlsberg(C# 设计者)设计的。 TypeScript 既是一种语言,也是一组工具。 TypeScript 是编译为 JavaScript 的 JavaScript 的类型化超集。 换句话说,TypeScript 是 JavaScript 加上一些附加功能。

TypeScript 图

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 与 ECMAScript6 规范保持一致。

TypeScript 和 ECMAScript

TypeScript 采用了 ECMAScript5 规范(即 JavaScript 的官方规范)中的基本语言特性。 TypeScript 语言功能(例如模块和基于类的方向)符合 EcmaScript 6 规范。 此外,TypeScript 还包含泛型和类型注释等不属于 EcmaScript6 规范的功能。

为什么使用 TypeScript?

TypeScript 优于 CoffeeScript 和 Dart 编程语言等其他同类语言,因为 TypeScript 是 JavaScript 的扩展。 相比之下,像 Dart、CoffeeScript 这样的语言本身就是新语言,需要特定于语言的执行环境。

TypeScript 的好处包括 −

  • 编译 − JavaScript 是一种解释性语言。 因此,需要运行它来测试它是否有效。 这意味着您编写所有代码只是为了找不到输出,以防出现错误。 因此,您必须花费数小时尝试查找代码中的错误。 TypeScript 转译器提供错误检查功能。 如果 TypeScript 发现某种语法错误,它将编译代码并生成编译错误。 这有助于在脚本运行之前突出显示错误。

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

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

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

TypeScript 的组件

TypeScript 的核心包含以下三个组件 −

  • Language − 它由语法、关键字和类型注释组成。

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

  • TypeScript 语言服务 − "语言服务"在核心编译器管道周围公开了一个附加层,这些管道是类似编辑器的应用程序。 语言服务支持一组常见的典型编辑器操作,例如语句完成、签名帮助、代码格式化和大纲、着色等。

TypeScript 组件

声明文件

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