现在是 2022 年。TypeScript当前的相关性是无可争议的。TypeScript 已经被很多很多用户主导了前端开发者体验。到目前为止,您可能已经知道 TypeScript 是 JavaScript 的超集,它通过添加类型声明、类和其他具有类型检查的面向对象功能的语法来构建在 JavaScript 之上。
当我说主导时,我的意思是 TypeScript 自 2012 年推出以来就在现场大放异彩。
资料来源: 2021 年 10 月状态 (GitHub)
这种增长令人难以置信,尤其是考虑到它在 2017 年才真正开始起飞。但是随着我们进入 2022 年,TypeScript 的发展究竟有多大意义?TypeScript 不会永远以这种方式飞速发展……对吧?!
稍微探讨一下这个想法,看看 TypeScript 今天在哪里,以及它将如何在未来的前端开发中继续发挥作用,这很有趣。Jake Albaugh 本人已经戳穿了 TypeScript 的相关性,但从了解 JavaScript 是否让您成为开发人员的相关性的角度来看。
那么,TypeScript 的未来相关性是什么样的呢?让我们来看看。
TypeScript 的根源
好的,所以我们知道 TypeScript 为 JavaScript 添加了语法。TypeScript 的 编译器使用这种语法在代码错误发生之前嗅出它们,然后它会吐出浏览器可以理解的 vanilla JavaScript。值得一提的是,TypeScript 由 Microsoft 维护,在 Apache 2 license 下获得许可。
如果不提及 ECMAScript (ES),我们就不能真正谈论 TypeScript,这是由ECMA International标准化的 JavaScript 标准和脚本语言规范。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 最初仅在Microsoft 的 Visual Studio代码编辑器中得到支持。有道理,对吧?我的意思是,TypeScript 由微软和所有人维护。但是随着 TypeScript 的发展,越来越多的代码编辑器和 IDE 开始以原生方式或通过插件支持它。
除了 Visual Studio Code 之外,一些最受欢迎的编辑器和 IDE 还包括:
- 原子
- 崇高的文本
- 网络风暴
- Emacs
- NetBeans
- 蚀
- 新Vim
更多的支持带来更多的 TypeScript 相关性。您几乎可以使用任何代码编辑器并开始编写 TypeScript 代码这一事实使其越来越成为首选,因为它可以在您想要的地方轻松使用。
TypeScript 的演变
从 2012 年首次发布到现在(2022 年初),TypeScript 的每个版本都发布了许多改进,例如:
- TypeScript 1.6 引入了
文件扩展名,它在 TypeScript 文件中启用了 JSX,并使 new.tsx
运算符成为默认的强制转换方式。as
- TypeScript 2 带来了重大改进,它允许开发人员有选择地防止变量被分配空值。
- TypeScript 2.3 版引入了对 ES6 功能的支持,例如生成器和迭代器。
- TypeScript 3 带来了语言增强功能,例如REST 参数中的元组和扩展表达式。
- TypeScript 4(在撰写本文时我们目前处于 4.5.2)通过改进元组、模板文字类型、更智能的类型别名保留以及对
和Awaited
.Promise
这正是您可能期望看到蓬勃发展的编程语言迭代和发布新功能的那种速度。同样,在评估 TypeScript 向前发展的相关性时,这是一个很好的背景。
TypeScript 的受欢迎程度
我们已经确定 TypeScript 非常受欢迎。这篇文章开头的图表显示,TypeScript 在短短几年内以惊人的速度增长,成为第四大最受欢迎的语言。但不要只相信我和 GitHub 的话(毕竟它归微软所有)。这是来自不同地方的一堆已发表的研究,它们都说了同样的话。
红僧
开发行业分析公司 RedMonk在其 2021 年最受欢迎语言列表中将 TypeScript 排名第八:
[TypeScript] 是否有能力提升并最终超越 C#、C++ 甚至 PHP 等长期在位者,或者 TypeScript 是否基本上处于或接近其潜力的极限?不可能说有任何可靠性,但有趣的是,一年前的这个时候,TypeScript 在排名所依据的综合得分中落后第五名的语言 6 分,但在这次运行中,差距只有 2点。当然,过去的表现并不总能预测未来的表现,但它至少表明 TypeScript 可能还有一些空间。
PYPL指数
PYPL指数是衡量 Google 搜索编程语言教程的指标。这不是精确的科学,而是一个很好的兴趣指标。而且,随着时间的推移,TypeScript 似乎正朝着平坦的方向发展。TypeScript 目前排名第八,与一年前相比,PYPL 表明 TyeScript 总体趋势持平,而 Python 和 C++ 等其他语言则同比增长。
Stack Overflow 2021 开发者调查
根据 Stack Overflow 的2021 年开发者调查,TypeScript 与 PYPL 所表明的一样受欢迎,在大约 83,000 名开发者中排名第七。
Stack Overflow 年度调查是最可信和最受期待的开发者调查之一。它使用来自世界各地的庞大开发人员基础来得出结论。这说明 TypeScript 在前端社区中的相关性如何?嗯,它不仅是第七大最受欢迎的语言,而且是开发人员最想使用的第二大技术(其次是 Python),也是第三大最受欢迎的语言(在 Rust 和 Clojure 之后)。
资料来源:2021 年 Stack Overflow 开发者调查
2020 年 JavaScript 状态
这项年度调查(下一项现已开放!)显示,TypeScript 在开发人员中的满意度高达 93%(高于 2019 年的 89%),在排名中名列前茅。它还在兴趣(从 66% 上升到 70%)、使用率(从 66% 上升到 78%)和认知度(100%,与 2019 年相比惊人地持平)获得了最高奖项。
GitHub 2.0 语言排名
该排名是一项与 GitHub 交互的分析,以找出 GitHub 上最常用的语言。这表明 TypeScript 的相关性在于 TypeScript 在 2021 年第一季度排名第七,然后在第四季度跃升至第四,并且同比变化最大。
来源来源
好的,很明显 TypeScript 很重要。但同样,它向前发展的相关性有多大?
TypeScript 在 2022 年及以后的相关性
到目前为止,我已经尝试绘制一张图来确定 TypeScript 适合前端开发领域的位置,展示它是如何迅速演变为一种成熟而严肃的编程语言竞争者,并且正在迅速成为两种编程语言选择和最喜欢的人。
换句话说:TypeScript 在今天很重要。
但是,如果我们想猜测 TypeScript 目前的成功在哪里,那么值得在 GitHub 上查看官方的 TypeScript 路线图。
这是我们必须期待的:
-
班级变化typeof
- 在子类中的超级调用之前允许更多代码
- 广义索引签名
-
和--noImplicitOverride
关键字override
- 静态索引签名
-
用作 catch 子句变量的类型unknown
- 调查名义打字支持
- 扁平化声明
- 实现 ES 装饰器提案
- 调查环境、弃用和条件装饰器
- 调查部分类型参数推断
- 实施快速修复来搭建本地
包@types
- 调查俳句或五音抑扬格中的错误信息
- 为函数表达式和箭头函数实现装饰器
我认为所有这些路线图功能都令人兴奋,并将在可预见的未来保持 TypeScript 的相关性方面发挥重要作用。虽然我认为所有这些都值得深入讨论,但这里有一些我认为是 2022 年及以后 TypeScript 的核心。
扁平化声明
例如,扁平化声明提案旨在为 TypeScript 项目启用捆绑声明,以便一个库可以与单个 TypeScript 文件一起使用,而不管它内部可能包含多少模块。
扁平化声明的想法是,
.d.ts
除了单个输出
.js
文件外,还应由 TypeScript 编译器发出单个合并和扁平化的文件。生成 DTS 时应考虑并尊重访问修饰符。拥有一个带有扁平化声明的声明文件将使开发人员的事情变得更加容易,并从长远来看提高可维护性。
Ambient、Deprecated 和 Conditional 装饰器
设计时装饰器——例如环境和条件装饰器——是另一个值得期待的特性。装饰器使开发人员能够以声明的方式将注释和元数据添加到现有代码中。在 TypeScript 中,每个装饰器都有一个特殊的名称
@
,以不会在转换后的 JavaScript 中发出,但可以在
.d.ts
输出中持久化。
例如,如果您可以在有人尝试使用已弃用的方法或属性时发出警告,以便他们可以升级到更新的库版本。通过在未来将环境、弃用和条件装饰器作为 TypeScript 规范的一部分,该语言将为开发人员提供更强大的方法来注释他们的代码并在其中包含元数据。
函数表达式/箭头函数的装饰器
函数和箭头表达式的装饰器是我认为将建立在 TypeScript 持续相关性之上的另一个特性。向这些表达式添加注释或元数据将使开发人员能够在运行时确定有关已应用装饰器的信息。
调查俳句或五音抑扬格中的错误信息
好的,所以也许这不是关于 TypeScript 强大功能集的相关性,但我认为它为语言添加的个性是使 TypeScript 易于使用的整体包的一部分。收到这样的错误消息会多么酷(和愉快):
我的代码正在破坏
忽略此错误消息
一切都很好
#TSConf
- 尼克尼西 (@nicknisi) 2018 年 3 月 13 日