TypeScript 在 2022 年的意义

Avatar of Mamta Dalal
Mamta Dalal

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 免费赠送额度!

现在是 2022 年了。 TypeScript 的当前意义毋庸置疑。 TypeScript 通过 许多许多 帐户主导了前端开发人员的体验。 到现在,您可能已经知道 TypeScript 是 JavaScript 的超集,它通过添加类型声明、类和其他面向对象功能的语法来构建 JavaScript,并进行类型检查。

当我提到主导时,我的意思是 TypeScript 自 2012 年推出以来在场景中迅速崛起。

The relevance of TypeScript illustrated in a line chart showing the popularity of multiple languages since 2014. TypeScript's popularity has risen the fastest among 10 popular languages and ranks fourth overall.
来源:Octoverse 2021 状态(GitHub)

这种增长令人难以置信,特别是考虑到它在 2017 年才真正开始起飞。 但是,随着我们进入 2022 年,TypeScript 在未来将会有多大的意义? 不会永远这样飞速增长吧…… 对吧?!

深入研究一下,看看 TypeScript 如今处于何种状态,以及它将如何继续在未来前端开发中发挥作用,这一点很有意思。 Jake Albaugh 已经从另一个角度研究过 TypeScript 的意义,即 作为开发人员,了解 JavaScript 是否让你有意义

那么,TypeScript 的未来意义是什么样的? 让我们来看看。

TypeScript 的根源

好的,我们知道 TypeScript 为 JavaScript 添加了语法。 此语法由 TypeScript 编译器 用于在错误发生之前嗅出代码错误,然后它会输出浏览器可以理解的普通 JavaScript。 还值得一提的是,TypeScript 由 Microsoft 维护,在 Apache 2 许可下获得许可

A blue oval labeled TypeScript code with an arrow to the right pointing at a green oval labeled TypeScript compiler, followed by another arrow pointing right toward a red oval labeled JavaScript code.

我们无法在不提及 ECMAScript (ES) 的情况下谈论 TypeScript,它是 JavaScript 标准和脚本语言规范,由 ECMA International 标准化。 JavaScript 命名约定从 ES1 开始,并演变为 ES6。 最新版本,第 12 版——或 ECMAScript 2021——于 2021 年 6 月发布。

TypeScript 是 ECMAScript 2015 的严格超集。 这意味着 JavaScript 语法也是 Typescript 语法。 相反,TypeScript 程序可以轻松地使用 JavaScript。

Concentric circles in blue, orange, green, and magenta showing how TypeScript encompasses ES 2016, ES 2015, and ES 5.
来源:Seema Saharan

了解所有这些信息很重要,因为我们需要了解 TypeScript 的根源,才能探索其可能的未来。

TypeScript 的组件

TypeScript 有三个基本组件,使它变得如此出色。 我们不仅获得了前面提到的 TypeScript 语言提供的类型检查,还获得了 TypeScript 编译器和 语言服务

A tree chart showing TypeScript at the top with three branches representing its language, compiler, and language service. Each of those has a single branch explaining what those components do.

这些是使 TypeScript 具有意义的部分。 开发人员喜欢编写该语言。 编译器用于解释浏览器中的语言。 该服务按需处理语言,速度极快。 没有这些,TypeScript 就不复存在。

TypeScript 支持

TypeScript 的意义中还有一个经常被忽视的关键部分:它得到了文本编辑器的极佳支持。 TypeScript 的意义只有在它易于访问且几乎任何前端开发人员都可以使用的情况下才有效。

TypeScript 最初只在 Microsoft 的 Visual Studio 代码编辑器中得到支持。 这说得通,对吧? 我的意思是,TypeScript 由 Microsoft 维护。 但是,随着 TypeScript 越来越流行,越来越多的代码编辑器和 IDE 开始原生支持它,或者通过插件支持它。

除了 Visual Studio Code 之外,一些最流行的编辑器和 IDE 包括

随着更多支持的到来,TypeScript 的意义也越来越大。 事实上,您可以选择几乎任何代码编辑器并开始编写 TypeScript 代码,这使其成为越来越受欢迎的选择,因为它在您需要的地方简单易用。

TypeScript 的演变

从 2012 年首次发布到今天(2022 年初),每个版本的 TypeScript 都发布了许多改进,例如

  • TypeScript 1.6 引入了 .tsx 文件扩展名,这 使 TypeScript 文件中可以使用 JSX,并将新的 as 运算符设为默认的强制转换方式。
  • TypeScript 2 通过允许开发人员选择性地防止将空值分配给变量,带来了重大改进。
  • TypeScript 2.3 版本引入了对 ES6 功能的支持,例如 生成器和迭代器
  • TypeScript 3 带来了语言增强,例如 元组 在 REST 参数和扩展表达式中。
  • TypeScript 4(在我们撰写本文时,当前版本为 4.5.2)继续演变,对元组、模板文字类型进行了改进,更智能的类型别名保留,以及对 AwaitedPromise 的改进。

这正是您期望看到一个蓬勃发展的编程语言迭代和发布新功能的速度。 再次强调,在评估 TypeScript 未来意义时,这是一个很好的背景信息。

TypeScript 的流行程度

我们已经确定,TypeScript 非常流行。 这篇文章开头展示的图表显示,在短短几年内,TypeScript 以惊人的速度增长,成为第四大最流行的语言。 但不要只相信我的话,也不要只相信 GitHub 的话(毕竟它是 Microsoft 的子公司)。 这里列出了来自多个机构的许多已发布的研究,它们都表明了这一点。

RedMonk

RedMonk 是一家开发行业分析公司,它 这样评价 TypeScript 在其 2021 年最流行语言排行榜中排名第八。

[TypeScript] 是否有能力在未来超越 C#、C++ 甚至 PHP 等长期占主导地位的语言,或者 TypeScript 基本上已经达到或接近其潜力的极限? 这无法可靠地确定,但有趣的是,一年前,在排名所依据的综合分数中,TypeScript 落后于第五名语言六分,但在这次排名中,差距仅为两分。 当然,过去的表现并不一定能预测未来的表现,但这至少表明 TypeScript 可能还有上升空间。

PYPL 指数

PYPL 指数 是衡量编程语言教程的 Google 搜索量的指标。 它不是精确的科学,但可以很好地反映兴趣。 随着时间的推移,TypeScript 似乎呈现平稳趋势。 TypeScript 目前排名第八,与一年前相比,PYPL 表明 TypeScript 的整体趋势平稳,而其他语言(如 Python 和 C++)的同比趋势则向上。

Stack Overflow 2021 开发人员调查

根据 Stack Overflow 的 2021 年开发者调查,TypeScript 的受欢迎程度与 PYPL 指示的差不多,位列第七,约 83,000 名开发者参与了排名。

An orange bar chart on a dark background showing TypeScript ranking seventh behind the likes of JavaScript, HTML/CSS, Python, SWL, Java, and Node.

Stack Overflow 年度调查是最可靠和最受期待的开发者调查之一。它利用来自世界各地的庞大开发者群体得出结论。TypeScript 在前端社区中的相关性如何?好吧,它不仅是最受欢迎的第七种语言,而且是 开发者最想使用的第二项技术(仅次于 Python),以及第三受欢迎的语言(仅次于 Rust 和 Clojure)。

来源:Stack Overflow 开发者调查 2021

2020 JavaScript 状态

这项年度调查(下一轮调查 现已开放!)表明,TypeScript 在开发者中获得了 93% 的令人惊叹的满意度(高于 2019 年的 89%),排名第一。它还在兴趣度(70%,高于 66%)、使用率(78%,高于 66%)和知名度(100%,与 2019 年相比令人惊讶地持平)方面获得了最高奖项。

Screenshot of the 2021 State of JavaScript survey chart of popular JavaScript flavors. TypeScript was second in 2016 but took first place in 2017 and has remained there since, above PostScript, Reason, Elm, and ClojureScript.

GitHut 2.0 语言排名

此排名是对 GitHub 的分析,旨在找出 GitHub 上使用最广泛的语言。这说明了 TypeScript 的相关性,TypeScript 在 2021 年第一季度排名第七,在第四季度跃升至第四,并且同比变化最大。

好吧,很明显 TypeScript 是一个大问题。但是,它在未来将如何发展?

TypeScript 在 2022 年及以后的相关性

到目前为止,我试图描绘一幅图景,确定 TypeScript 在前端开发环境中的位置,展示它如何迅速发展成为一种成熟且严肃的编程语言,并且正迅速成为人们最喜欢的编程语言。

换句话说:TypeScript 如今非常重要。

但是,如果我们想猜测 TypeScript 目前的成功将把它带向何方,那么值得看看 GitHub 上的 官方 TypeScript 路线图

以下是我们期待的

  • typeof 类变更
  • 在子类中允许在 super 调用之前使用更多代码
  • 泛型索引签名
  • --noImplicitOverrideoverride 关键字
  • 静态索引签名
  • unknown 用作 catch 子句变量的类型
  • 调查名义类型支持
  • 扁平化声明
  • 实施 ES 装饰器提案
  • 调查环境、已弃用和条件装饰器
  • 调查部分类型参数推断
  • 实施快速修复以构建本地 @types
  • 调查俳句或抑扬格五步诗中的错误消息
  • 实施用于函数表达式和箭头函数的装饰器

我认为所有这些路线图中的功能既令人兴奋,又将在保持 TypeScript 在可预见的未来中的相关性方面发挥重要作用。虽然我认为它们都值得深入讨论,但我认为以下几个功能对于 TypeScript 在 2022 年及以后至关重要。

扁平化声明

例如,扁平化声明提案旨在为 TypeScript 项目启用捆绑声明,以便可以仅使用一个 TypeScript 文件使用库,无论它在内部包含多少模块。

扁平化声明的想法是,除了一个输出 .js 文件之外,还应该由 TypeScript 编译器发出一个合并并扁平化的 .d.ts 文件。在生成 DTS 时应考虑并遵守访问修饰符。拥有一个包含扁平化声明的单一声明文件将使开发人员的工作更轻松,并从长远来看提高可维护性。

环境、已弃用和条件装饰器

设计时装饰器(例如,环境条件装饰器)是另一个期待已久的功能。装饰器使开发人员能够以声明方式向现有代码添加注释和元数据。在 TypeScript 中,每个装饰器都具有以 @ 开头的特殊名称,该名称不会在转换后的 JavaScript 中发出,但可以在 .d.ts 输出中持久化。

例如,考虑一下,如果可以发出警告,以提醒任何尝试使用已弃用方法或属性的人员升级到较新的库版本。通过在未来将环境、已弃用和条件装饰器作为 TypeScript 规范的一部分,该语言将为开发人员提供更强大的方法来注释其代码并在其中包含元数据。

用于函数表达式/箭头函数的装饰器

用于函数和箭头表达式的装饰器是另一个我认为将建立在 TypeScript 的持续相关性基础上的功能。向这些表达式添加注释或元数据将使开发人员能够在运行时确定已应用装饰器的信息。

调查俳句或抑扬格五步诗中的错误消息

好吧,也许这个功能与 TypeScript 的强大功能集的相关性关系不大,但我认为它为该语言添加的个性是使 TypeScript 使用起来很愉快的整体包装的一部分。获得类似这样的错误消息会多么酷(和愉快)

当然比有时感觉像是训斥的程序化消息好!虽然在过去两年中,此提议的功能没有取得任何进展,但它仍然存在于官方路线图中,这意味着最终有人会对此进行开发。


Microsoft 于 2021 年 8 月 发布了 Visual Studio 2022 预览版 3。该版本有很多令人兴奋的功能,例如新的 JavaScript 和 TypeScript 工具,可以增强对单页应用程序和前端开发的体验。此外,它还包含一个新的 JavaScript/TypeScript 项目类型,以方便开发人员构建独立的 Angular、React 和 Vue 项目。然后是 Visual Studio 将利用每个 JavaScript 框架的本机 CLI 来构建前端项目模板的增强功能。

总而言之,TypeScript 不仅仅在发展;它正在爆炸式增长,并且随着我们进入 2022 年,它只会获得更大的发展势头。因此,是的,TypeScript 在 2022 年很重要……而且在未来的一段时间内它将继续保持这种重要性。