Advertisement

技术09期:5分钟带你快速了解TypeScript

阅读量:

近年来TypeScript(TS)逐渐频繁地被人们所关注。它逐渐被广泛报道并在各类平台如新闻及论坛中可见一斑。如今主流的三大前端框架包括React、Vue 3.0以及Angular 2,在其中Vue 3.0与Angular 2均采用了TypeScript作为开发工具。积极倡导开发者采用TypeScript来进行开发工作。

近年来TypeScript(TS)逐渐频繁地被人们所关注。
它逐渐被广泛报道并在各类平台如新闻及论坛中可见一斑。
如今主流的三大前端框架包括React、Vue 3.0以及Angular 2,
在其中Vue 3.0与Angular 2均采用了TypeScript作为开发工具。
积极倡导开发者采用TypeScript来进行开发工作。

那么,TS到底有什么魅力,让众多开发者如此青睐。

TypeScript是由微软开发的一个开源编程语言项目,并基于JavaScript进行了扩展。它作为扩展语言能够直接支持将JavaScript代码转换为与之兼容的语言实现。通过类型系统实现完全兼容性。

相较于JavaScript而言,在类型系统方面TypeScript(TS)新增了静态类型检查这一特点,并引入了面向对象的技术为开发者提供了便利。这种改进不仅提升了代码的质量标准要求还显著提升了代码的可读性和易维护性以下将简要阐述这些新增功能及其带来的潜在优势

01 静态类型检查

对于那些熟悉JavaScript开发的人来说,了解它的开发者都知道它是一种非严格强类型的编程语言。非严格强类型的编程语言在运行时不会强制指定变量的数据类型,在这种情况下(即由于我们的不经意间操作可能会导致变量的实际类型与预期不符)会导致程序运行出现一些不可预测的行为

比如我们定义了一个变量名variable为'1'(string类型),经过一系列代码处理后, 该变量名可能就会被转换为1(number类型)。这种情况在JavaScript中是一个常见现象。

这样就使得开发者必须时刻注意自己所定义的变量在代码运行至何时段时的数据类型是什么样的,并以此为基础避免出现代码错误的风险

这样就导致了开发者必须时刻清楚自己定义的变量在代码运行至什么时间段时会是什么数据类型,并以此为依据防止出现代码错误

基于上述variable变量这一场景展开讨论, 最初我们将该变量声明为string类型, 但或许在后续过程中我们希望利用该variable执行string相关操作, 然而令人在意的是在程序运行期间发现该variable的数据类型发生了变化, 这就可能导致错误信息出现进而影响整个程序的正常运行

在JavaScript超集 TypeScript 中成功引入了静态类型的检查特性 因此 TypeScript 被视为一种"强"类型的编程语言(虽然作为JavaScript的一个扩展 类型系统并未完全去除JavaScript的一些隐式的类型转换机制 并新增了一个特殊的数据类型 any 用于表示其属性可以在运行时进行动态修改 这使得TypeScript 严格来说并不能算作真正的'强'型语言)

通常会声明一个变量并为其指定数据类型。一旦变量的数据类型发生变化(其中唯一例外是any),代码编译器会在编译过程中发出错误提示。

any 类型可以绕过检测

静态类型验证有助于开发大型系统。由于项目规模较大导致难以进行全面测试,在这种情况下,静态类型审查能够发现那些未被调用的代码逻辑,并揭示潜在的问题隐患从而提高系统的安全性。

此外

02 面向对象特性

在JavaScript语言中

面向对象程序设计的核心概念主要包括三个关键特性:继承性、信息隐蔽性和运行时多态性。尽管JavaScript能够模仿这些特性中的前两项技术实现功能(其中包含继承性和信息隐蔽性),但对运行时多态性的复制并不够理想

TS引入了新类、接口以及泛型等特性。相较于基于JavaScript风格的封装方案'灵活自由'这一特点,通过引入这些特性(如新类、接口及泛型),开发者能够编写出更加规范且易于理解的代码,不仅提高可读性而且简化了代码扩展流程。这种方法降低了某些封装方案实施所需的门槛,并为熟悉面向对象编程(OOP)语言的开发者提供了便利

而该方法适用于大型项目开发, 有助于促进团队协作与提高工作效率

下面列举一个简单的分别运用es5,es6和ts来封装类的对比例子。

03 其他方面

以上两点为TS和JS最大的不同和优势,接下来说下其他一些小优点。

(1)良好的编码体验

提升编辑器与IDE的功能模块;支持代码补全、接口提示及跳转至定义位置;同时提供重构等高级操作

(2)活跃的社区

如今已有大量第三方库支持并提供TS声明文件;基于Google开发的Angular2和由国人尤雨溪领导开发的Vue3.0均采用TypeScript编写。

(3)包容的环境

它是 JavaScript 的一种扩展语言。对于.js文件来说,只需将文件名直接从.js改为.ts即可实现转换功能;即使无需显式地定义数据类型,也能进行精准的类型推断;该语言支持自简单到复杂涵盖几乎所有类型的定义;值得注意的是,即便typescript项目在编译过程中遇到问题也会顺利生成对应的javascript文件。

尽管TS增加了面向对象的功能特性,则对那些不熟悉面向对象技术的人来说,则需要投入一定的时间成本。

就短期的小项目而言,采用TS可能会带来额外的开发成本;然而,在涉及长期维护的大规模项目中使用TS则显然是得不偿失的选择.

对于某些库而言,在目前阶段结合使用可能会遇到一些挑战;然而随着进展以及社区持续的努力推动下,这一问题最终将得到解决。

因此,在决定是否应立即学习并应用TypeScript时,请特别关注开发者个人的工作环境这一重要因素。随着目前趋势的发展, TypeScript的应用率正不断提高; 如果你具备时间和能力无疑是非常值得建议的做法.

- 完 -

想了解更多关于人工智能的资讯

欢迎关注普适极客

全部评论 (0)

还没有任何评论哟~