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

这种增长令人难以置信,特别是考虑到它在 2017 年才真正开始起飞。 但是,随着我们进入 2022 年,TypeScript 在未来将会有多大的意义? 不会永远这样飞速增长吧…… 对吧?!
深入研究一下,看看 TypeScript 如今处于何种状态,以及它将如何继续在未来前端开发中发挥作用,这一点很有意思。 Jake Albaugh 已经从另一个角度研究过 TypeScript 的意义,即 作为开发人员,了解 JavaScript 是否让你有意义。
那么,TypeScript 的未来意义是什么样的? 让我们来看看。
TypeScript 的根源
好的,我们知道 TypeScript 为 JavaScript 添加了语法。 此语法由 TypeScript 编译器 用于在错误发生之前嗅出代码错误,然后它会输出浏览器可以理解的普通 JavaScript。 还值得一提的是,TypeScript 由 Microsoft 维护,在 Apache 2 许可下获得许可。

我们无法在不提及 ECMAScript (ES) 的情况下谈论 TypeScript,它是 JavaScript 标准和脚本语言规范,由 ECMA International 标准化。 JavaScript 命名约定从 ES1 开始,并演变为 ES6。 最新版本,第 12 版——或 ECMAScript 2021——于 2021 年 6 月发布。
TypeScript 是 ECMAScript 2015 的严格超集。 这意味着 JavaScript 语法也是 Typescript 语法。 相反,TypeScript 程序可以轻松地使用 JavaScript。

了解所有这些信息很重要,因为我们需要了解 TypeScript 的根源,才能探索其可能的未来。
TypeScript 的组件
TypeScript 有三个基本组件,使它变得如此出色。 我们不仅获得了前面提到的 TypeScript 语言提供的类型检查,还获得了 TypeScript 编译器和 语言服务。

这些是使 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)继续演变,对元组、模板文字类型进行了改进,更智能的类型别名保留,以及对
Awaited
和Promise
的改进。
这正是您期望看到一个蓬勃发展的编程语言迭代和发布新功能的速度。 再次强调,在评估 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 名开发者参与了排名。

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

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

GitHut 2.0 语言排名
此排名是对 GitHub 的分析,旨在找出 GitHub 上使用最广泛的语言。这说明了 TypeScript 的相关性,TypeScript 在 2021 年第一季度排名第七,在第四季度跃升至第四,并且同比变化最大。
好吧,很明显 TypeScript 是一个大问题。但是,它在未来将如何发展?
TypeScript 在 2022 年及以后的相关性
到目前为止,我试图描绘一幅图景,确定 TypeScript 在前端开发环境中的位置,展示它如何迅速发展成为一种成熟且严肃的编程语言,并且正迅速成为人们最喜欢的编程语言。
换句话说:TypeScript 如今非常重要。
但是,如果我们想猜测 TypeScript 目前的成功将把它带向何方,那么值得看看 GitHub 上的 官方 TypeScript 路线图。
以下是我们期待的
typeof
类变更- 在子类中允许在 super 调用之前使用更多代码
- 泛型索引签名
--noImplicitOverride
和override
关键字- 静态索引签名
- 将
unknown
用作 catch 子句变量的类型 - 调查名义类型支持
- 扁平化声明
- 实施 ES 装饰器提案
- 调查环境、已弃用和条件装饰器
- 调查部分类型参数推断
- 实施快速修复以构建本地
@types
包 - 调查俳句或抑扬格五步诗中的错误消息
- 实施用于函数表达式和箭头函数的装饰器
我认为所有这些路线图中的功能既令人兴奋,又将在保持 TypeScript 在可预见的未来中的相关性方面发挥重要作用。虽然我认为它们都值得深入讨论,但我认为以下几个功能对于 TypeScript 在 2022 年及以后至关重要。
扁平化声明
例如,扁平化声明提案旨在为 TypeScript 项目启用捆绑声明,以便可以仅使用一个 TypeScript 文件使用库,无论它在内部包含多少模块。
扁平化声明的想法是,除了一个输出 .js
文件之外,还应该由 TypeScript 编译器发出一个合并并扁平化的 .d.ts
文件。在生成 DTS 时应考虑并遵守访问修饰符。拥有一个包含扁平化声明的单一声明文件将使开发人员的工作更轻松,并从长远来看提高可维护性。
环境、已弃用和条件装饰器
设计时装饰器(例如,环境和 条件装饰器)是另一个期待已久的功能。装饰器使开发人员能够以声明方式向现有代码添加注释和元数据。在 TypeScript 中,每个装饰器都具有以 @
开头的特殊名称,该名称不会在转换后的 JavaScript 中发出,但可以在 .d.ts
输出中持久化。
例如,考虑一下,如果可以发出警告,以提醒任何尝试使用已弃用方法或属性的人员升级到较新的库版本。通过在未来将环境、已弃用和条件装饰器作为 TypeScript 规范的一部分,该语言将为开发人员提供更强大的方法来注释其代码并在其中包含元数据。
用于函数表达式/箭头函数的装饰器
用于函数和箭头表达式的装饰器是另一个我认为将建立在 TypeScript 的持续相关性基础上的功能。向这些表达式添加注释或元数据将使开发人员能够在运行时确定已应用装饰器的信息。
调查俳句或抑扬格五步诗中的错误消息
好吧,也许这个功能与 TypeScript 的强大功能集的相关性关系不大,但我认为它为该语言添加的个性是使 TypeScript 使用起来很愉快的整体包装的一部分。获得类似这样的错误消息会多么酷(和愉快)
我的代码坏了
— Nick Nisi (@nicknisi) 2018 年 3 月 13 日
忽略此错误消息
一切都很好
#TSConf
当然比有时感觉像是训斥的程序化消息好!虽然在过去两年中,此提议的功能没有取得任何进展,但它仍然存在于官方路线图中,这意味着最终有人会对此进行开发。
Microsoft 于 2021 年 8 月 发布了 Visual Studio 2022 预览版 3。该版本有很多令人兴奋的功能,例如新的 JavaScript 和 TypeScript 工具,可以增强对单页应用程序和前端开发的体验。此外,它还包含一个新的 JavaScript/TypeScript 项目类型,以方便开发人员构建独立的 Angular、React 和 Vue 项目。然后是 Visual Studio 将利用每个 JavaScript 框架的本机 CLI 来构建前端项目模板的增强功能。
总而言之,TypeScript 不仅仅在发展;它正在爆炸式增长,并且随着我们进入 2022 年,它只会获得更大的发展势头。因此,是的,TypeScript 在 2022 年很重要……而且在未来的一段时间内它将继续保持这种重要性。
“这意味着 JavaScript 程序也是有效的 TypeScript 程序”这并不正确。
例如,
因此,就语法而言,TS 只是 JS 的超集。
好文章。
Andrey,你说得对!这是一个疏忽,我的意思是写语法。现在文章已得到相应修改 :) 感谢你的阅读。
Blazor WebAssembly 允许我们在浏览器中编写 C# 代码,也许它已经达到了顶峰。
Web Assembly 要取代 JS 多久了?微软可能很乐意看到它对开源的投入能带来回报……以消灭开源(包括它自己的)……但不知何故,我不认为网络会很快变成一个 C# 开发人员的海洋。
没错,这需要时间。它永远不会完全取代 TypeScript / JavaScript,就像我们今天仍然在运行 Cobol 程序一样,但现在有多少新东西是用 Cobol 编写的?
在选择未来编写 C# 还是 Typescript / JavaScript 的情况下,我知道我更喜欢哪一种,以及我将使用 Blazor 做什么。
我认为 TS 是一个不必要的工具,它给代码带来了很多开销。你离实际运行时更远了,你需要添加很多适配器和帮助程序来支持工具本身,而且本质上,它总是落后于实际的 Web 技术。ECMA 不仅仅是关于新的 API,它也塑造了你设计代码的方式以及 TS 和 ECMA 之间的映射不是 1:1。
这就像 Android 操作系统及其不同供应商使用的不同版本一样。
关于 blazor 和 web assembly,人们对工具/语言如何塑造网站代码库存在误解。我看到我公司里的经理试图通过实施像 blazor 这样的工具来解决开发人员短缺的问题,他们认为他们把问题从寻找前端开发人员变成了寻找后端(全栈)开发人员。这是一个误解,因为 UI 的架构从根本上不同,后端开发人员并不适合 Web 开发,仅仅因为 Web 开发现在是用后端语言编写的。