JavaScript 最初是为了在 1995 年左右版本的 Netscape Navigator 中运行而发明的。当时,开发人员做出设计决策是为了解决今天看来难以想象的限制,例如:
JavaScript 语言的构建是为了向 Web 开发人员提供简单的核心功能。
三十年后,JavaScript 盔甲上的裂缝现在显现出来,特别是当开发人员使用该语言通过 Angular 和 React 构建渐进式 Web 应用程序,或通过 NodeJS 构建复杂的后端微服务时。
TypeScript 从一开始就被设计为一种优雅的、完全面向对象的编程语言,它提供功能特性和可选的设计时类型检查。
借助 TypeScript,开发人员可以使用像 C# 或 Java 一样优雅、富有哲理且功能丰富的语言。编译后,TypeScript 会变成跨平台的 JavaScript 代码,保证可以在任何符合 ECMAScript 的运行时中工作。
TypeScript 支持通过使用命名空间来模块化和组织组件的能力,而 JavaScript 不支持这一点。
通过使用可选参数和命名参数等语法元素,TypeScript 比 JavaScript 更具表现力。
TypeScript IDE 具有更多功能,因为为静态类型语言构建插件和工具更容易。
随着代码库的扩展,TypeScript 代码更容易调试,因为可以在编译时而不是运行时发现类型错误。
TypeScript 为社区提供了一种更动态、功能更全、更安全的方式来开发目标运行时需要 JavaScript 的企业级应用程序。
TypeScript 并不是为了取代 JavaScript 而设计的。相反,它的目的是通过使编写、集成、管理和维护代码变得更容易来鼓励基于 JavaScript 的平台的扩散。
JavaScript 驱动的平台(例如服务器上的 NodeJS 和客户端上的 ReactJS)继续流行。用 TypeScript 编写代码并将其转换为 JavaScript 的能力是这两种语言的采用率持续攀升的原因之一。