Vue 3源码基本上使用TypeScript编写。做为前端,是不是该学TypeScript啦?

雪之梦技术驿站



因此,关于你的提问,我可以肯定的告诉你,作为前端开发者,我们此时比以往任何时候更需要学习TypeScript,以下是针对这个答案的观点,欢迎大家指正。


首先我们来了解下什么是TypeScript

C#语言的创始人 Anders Hejlsberg 设计了 TypeScript,并于2013年6月19日发布了其第一个正式版本,它是JavaScript的一个超集,之所以设计这个语言的初衷就是帮助前端开发人员能像后端开发人员那样利用高级语言的特性进行编写代码。比如可以利用高级语言的这些特点:强类型、面向对象、语法检查,代码编译等。TypeScript 还有一个最大的特点就是可编译 ,编译的好处就是有利于发现错误,一发现错误就终止编译,提前帮我们定位问题,编译通过后,就会将 TypeScript 语言转换成高质量的原生JavaScript 代码。


经过这几年的发展,TypeScript 的最新版本是3.X,目前是微软最有影响力的产品之一,最重要的一点是现在完全免费并且开源。还有一个比较有趣的事情是,连谷歌这样竞争对手,在其 Angular 的前端框架产品上,也放下成见,从2.0 版本就开始拥抱TypeScript,可见谷歌在这件事情多么有先见知名,现在 React 、Vue 才意识到使用TypeScript。从目前的情况来看,如果你不学习TypeScript,Angular 框架你就无法使用,在过不了多久,React 、Vue 也不好说会不会强制要求我们使用TypeScript,反正Angular 最早这么干了,目前还是主流的前端框架之一。


然后我们在来分析下 JavaScript 的现状

这几年 JavaScript 可谓发展迅速,可谓全平台通吃,现流行称作“大前端”,目前前端不仅能做网站、还能做手机端、WebGL 3D 动画、VR、后端、游戏开发、物联网开发、甚至人工智能等等,这些互联网产品的主要形态,几乎都可以用前端来完成。由于其发展太快,JavaScript 这门语言也在紧跟时代的步伐,并且改名ECMAScript,几乎每年都会有新版本发布,目前最新版本应该到10了,就是这样的发展速度,还是与java 和 c# 这些成熟的高级语言还有很大的距离。由于版本的问题,我们在项目中可能混杂着各版本的脚本,造成了规范不统一,兼容性差的各种问题。


接下来,我们来回顾下 JavaScript 的常见的场景,由于其实弱语言的特点,不会进行类型检查,比如 1+“1” 这个问题,有可能是我们人为失误的原因多写了双引号,其结果不会报错,会正常输出一个我们不想见到的结果11,这就造成了我们很难发现问题。除此之外,还有莫名其妙的各种undefined问题,也不会影响程序运行,增加了我排查问题的难度。


因此我们需要一个工具帮我们降低 JavaScript 弱语言的脆弱性,减少由于不正确类型导致错误产生的风险和各种版本混杂造成错误的风险等等。TypeScript 的出现正好解决了我们的这类问题。


接下来具体分析下 TypeScript 的特点和优势


1、入门容易,前端开发者很容易上手

TypeScript 从表面上看来就和普通的 JavaScript 代码差不多,无非就是把高级语言的强类型这个最主要的特征引入JavaScript,就好像为 JavaScript 上了一把高级语言强类型的锁,避免这类问题的产生,由此不得不佩服微软的良苦用心,就是为了让我们前端开发者更好的更快的学习TypeScript。我们先来看段代码,理解下强类型的特征,如下代码所示:

你可能认为这段代码很平常,如果你这样调用 increaseAge(cat),TypeScript 编译器就会报出错误,提示你increaseAge这个函数的参数必须是数字。如果是原生 JavaScript 不但不报错,还会正常的返回结果,这就大大增加了我们开发过程中潜在的风险及排查错误的时间成本。这也许就是TypeScript 的魅力所在,提前帮我们发现代码出现错的风险。


2、按需编译成我们指定的 JavaScript 版本

在上面分析 JavaScript 的现状时,我们提及到 JavaScript 版本几乎每年都会有新的版本,如果你要写出兼容性比较高的脚本,对于我们前端开发者来说是一个很大的挑战,你不能保证每个人都使用let,或者超前使用最新语法特性等。TypeScript 却很好的解决了此问题,你可以按需输出你需要的脚本,比如 ECMAScript 3、ECMAScript 5 、ECMAScript 6 。同时 TypeScript 还与时俱进,紧跟 JavaScript 的新特性,这就意味你可以使用这些新特性进行编写,无需考虑其是否兼容,兼容的事情都交给 JavaScript 编译器吧。


3、代码规范标准,有利于团队协作开发

现在的互联网产品越来越复杂,形态又多,各终终端,一个产品不可能只有一个前端进行开发,现在前端开发也是团队的开发模式,刚才提及到 JavaScript 本身的特点还有其发展太快,这就会造成每个人写代码的随意性就会很大,你当然可以为团队引入 eslint 这些插件进行代码质量检查,但是你要整理出这些规范来估计要花费不少的时间。与其花时间在这上面,还不如在TypeScript 的基础上,结合 TypeScript 的特点做一套标准即可来应对 JavaScript 版本不断更新的特点。


最后给前端初学者的一些建议

如果你是 JavaScript 的新手,我不建议你一上来就学习 TypeScript,等你有了一定的基础,对前端的概念和逻辑有一定的认知后,再学 TypeScript 也不晚,并且学习起来更快 ,这样你就会写出更健壮的 TypeScript。TypeScript 这个工具的设计初衷并不是为了吸引更多的人学习前端,而是为了让具有一定基础的前端开发者编能像其他高级语言开发者一样编写出质量更高的健壮性的代码。


小节

今天的内容就分享到这里,不知道我的这些观点是否能说服你去学习 TypeScript 。还有一个原因我漏掉了,我在这里补充下,你会发现目前端岗位的招聘需求里有的公司都明确要求熟练掌握TypeScript啦 ,学习TypeScript本身并不难。它像JavaScript一样编写和运行,只是增加一些新的理念和语法糖,我们学起来也会更加顺手,加油吧,现在开始学习 TypeScript 并不晚。

感谢大家阅读,如果你有什么好的想法欢迎到留言区分享交流,如果你赞同我的回答,欢迎给个赞和转发,谢谢支持。

前端达人


在前端进阶的路上,TypeScript真的是必不可少的,也是极为重要的,真正的吃香,很得宠,目前前端框架Angular、Vue、React已全部支持TypeScript。你要去熟知,熟练,肯定会为你找工作添加很多机会。

TypeScript

TypeScript是JavaScript的一个超集,支持ECMAScript 6 标准,有由微软开发的自由和开源的编程语言,其设计目标是开发大型应用,它可以编译纯JavaScript,编译出来的JavaScript可以运行在任何浏览器上。

前端标配Vue

作为一名标准的前端开发人员,掌握并熟练Vue的使用已经是一个标配了,那么从这一方面来看,如果你想熟练并精通Vue框架,就必须从源码入手,就像你想成为一黑客,就必须了解Windows系统后台源码一样,想当初也是,想精通js,那么你必须的熟练js源码一样,知道了它怎么运行,什么原理,你才可以去用它,给你自己加砝码。如今Vue3.0出来了,使用TypeScript编写,你说能不学习吗?往后会更火,上GitHub你就能看见有多少星星了。

TypeScript特点

1、提高代码质量

一段代码好不好,就要看它的可维护性、健壮性、简洁而不简单,TypeScript能从这些方面提高代码的质量,不为别的,如果你做过大项目,后期对于长期迭代的项目、开发和维护的成员会很多,每个人独有每个人的风格,流动性也很大,代码质量过关就可以避免一些问题,我们公司就使用jshint统一规范,不能通过不能上线。

而TS就可以为我们帮助规避这些问题,从而提高代码的质量。

2、对面向思想进行了加强

维基百科对OOP的定义是:是种具有物件概念的程式编程典范,同时也是一种程序开发的抽象方针,它可能包含资料、属性、程式码与方法,对象则指的是类的实例。它将对象最为程序的基本单元,将程序与数据封装在其中,以提高软件的重用性、灵活性与扩展性。物件里的程序可以访问经常修改物价相开外的资料。

接口:

当我们设计程序的时候,基类中的所有方法都不用去实现,就可以使用接口来实现,提高延展性。

泛型:

泛型可以用来创建可重用的组件,一个组件可以支持做种类型的接口,这样使用者就可以通过用自己的数据来使用组件。这样一来就可以最大限度的重用代码,保护类型的安全。降低了强制转化操作的成本与风险。

TypeScript发展前景

你看了上面几张图以后发现,他们都有在用TypeScript,真的是这样,基于TS开发的项目越来越多,因为在Web应用变复杂的同时,js慢慢的透露出一些问题,性能不能满足一切场合的需要,语法太灵活导致在大项目中bug接踵而至。

但是TypeScript通过为js加入静态类型检查改进js的松散语法,提神代码的健壮性,对于性能问题,有GOOGle、MICOSof、Mozilla、Apple等几家公司合作发起一个关于面向Web的通用二进制和文本格式的项目——webAssetmbly。大家又兴趣的可以去了解一下。我就不多所,我也不了解哈。

总结

说这么多,也不如去尝试一下,有中文文档,而且也很完善,跟着上手操作一波,也很简单,反正适用于js程序员学习,小白们可以去适当了解学习一下,发展前景还是相当可观的。


以上就是本问题的全部内容,希望本文能对你有帮助,谢谢阅读。

PS:本文为‘Web前端进阶指南’原创,手动码字不易,小伙伴们别忘了顺手点个赞加个关注哈,后续会带给你们更多的前端小知识,感受前端带来的魅力。


Web前端进阶指南


要学!

Typescript是趋势,不可逆!

Vue已经是web开发标配,后端都会用了,你觉得作为前端你还有啥优势?

虽然不会ts不影响使用,但很多知名的库都在用ts重构,比如ant.design,vant等等,我怕以后你搜个资料源代码都是ts版,只会传prop,别说改了,看都看不懂,你说尴尬不!


老邮局


我觉得不应该纠结到底学不学,而是TS是开发中大型项目必须的,因为每个人写的风格都不一样,但是通过TS可以强约束我们写出可扩展,可插拔健壮的代码逻辑,同时加深自己的严谨性。根据自己的需要判定,本来TS也不是多么难学的一个东西(当然只是用来写项目,并不是去研究这门语言,除非你自己写个解释器😂)


爱喝美式的travis


ts当然要学,ts的技术栈和体系已经相当成熟了,该工程学结构开发效率和质量都很高。


分享到:


相關文章: