1. 首页
  2. IT资讯

前端开发者们,为什么我们还需要学习 TypeScript?

“u003Cdivu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F4deaf3f10e93421397ea63c0a340253d” img_width=”2000″ img_height=”1105″ alt=”前端开发者们,为什么我们还需要学习 TypeScript?” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003ETypeScript 是由 C#语言的创始人 Anders Hejlsberg 设计的一种编程语言,设计的初衷就是为了帮助 JavaScript 的开发人员能像类似高级语言c#,Java那样编写代码,比如使用高级语言的强类型、面向对象、语法检查,代码编译等特点。 TypeScript包含一个编译器,可以将用TypeScript 编写的代码转换为原生的 JavaScript。u003Cu002Fpu003Eu003Cpu003ETypeScript 目前最新的版本是 3.x 了,是目前微软最好的产品之一,现在完全免费并且使用 Apache 协议开源了 TypeScript,并成为社区很活跃的框架之一。连谷歌这样的死对头,也拥抱 TypeScript ,在 Angular 2.0 版本就开始集成 TypeScript,如果你不学 TypeScript,Angular 这个框架就无法使用。目前 React 、Vue 在未来的版本都在考虑集成 TypeScript 。在可以预计的未来,如果还不开始学习 TypeScript,我们就不能使用这些框架的新特性了。u003Cu002Fpu003Eu003Cpu003E以下几个观点就是笔者强烈大家学习TypeScript的原因,如有不恰当地方,欢迎各位指正。u003Cu002Fpu003Eu003Ch1u003EJavaScript 发展迅速u003Cu002Fh1u003Eu003Cpu003E从目前 JavaScript 的发展和应用趋势来看,它的发展实在是太快了,你可以用它进行 web开发、移动应用开发、桌面软件开发、后端开发,以及未来成为趋势的 VR、WebGL及物联网的应用开发等,它的标准从2015年开始每年都会更新,更新实在是太快了,及时这样,但是与 java 和 c# 这些成熟的高级语言还有很大的距离。u003Cu002Fpu003Eu003Cpu003E使用 TypeScript 可以帮你降低 JavaScript 弱语言的脆弱性,帮你减少由于不正确类型导致错误产生的风险,以及各中 JavaScript 版本混杂造成错误的风险。u003Cu002Fpu003Eu003Ch1u003E我们需要强类型的 JavaScriptu003Cu002Fh1u003Eu003Cpu003E从表面上看,TypeScript 像普通的 JavaScript 代码,这一特点就降低我们初学者的难度,因此不得不佩服微软的良苦用心。TypeScript 只是把高级语言的强类型这个最主要的特征引入 JavaScript ,就解决了防止我们在编写 JavaScript 代码时因为数据类型的转换造成的意想不到的错误,增加了我们排查问题的困难性。它为 JavaScript 上了一把高级语言强类型的锁,避免这类问题的产生,使用 TypeScript,你的代码可能是这样的:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F5a0cb765633946e18bf5707b03686d54″ img_width=”924″ img_height=”554″ alt=”前端开发者们,为什么我们还需要学习 TypeScript?” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E也许你觉得这段代码很平常,如果你这样调用 increaseAge(cat),TypeScript会抛出一个错误,提示你 increaseAge 函数的参数必须是数字类型。如果使用原生的 JavaScript ,原生编译器则不会产生错误,还能正常的返回 Merlin1 的内容,这可不是我们期望的,这就大大增加了我们开发过程中潜在的风险,排查错误的困难性。u003Cu002Fpu003Eu003Cpu003E这就是 TypeScript 的魅力所在,提前帮我们发现代码出现错的风险。u003Cu002Fpu003Eu003Ch1u003E按需输出 JavaScript 版本u003Cu002Fh1u003Eu003Cpu003E前面提及到 JavaScript 发展迅速,估计 JavaScript 的创始人也没有想到能发展到今天的地步,JavaScript 的版本现在几乎每年都会有更新,如果你要写出兼容性的脚本,对于每位开发者就是一个相当大的挑战。TypeScript 却很好的解决了此问题,你可以按需输出你需要的脚本,比如 ECMAScript 3、ECMAScript 5 、ECMAScript 6 。u003Cu002Fpu003Eu003Ch1u003E代码标准化利于团队开发u003Cu002Fh1u003Eu003Cpu003E由于 JavaScript 本身语言的特点,还有其版本迭代太快的原因,团队成员使用 JavaScript 时很容易随意发挥,不受规范约束。你的团队当然可以针对这些版本的 JavaScript 做出使用规范,引入一些代码质量检测插件,比如eslint。整理这些类容,估计就需要花不少的时间,在团队推广和使用制定的规范又要花一段时间。与其花这些时间进行整理,还不如在TypeScript 的基础上,结合 TypeScript 的特点做一套标准即可来应对 JavaScript 版本不断的更新迭代。u003Cu002Fpu003Eu003Ch1u003E主流框架及最新特性的支持u003Cu002Fh1u003Eu003Cpu003E文章一开始笔者都提及到 Angular 2.0 版本就开始集成 TypeScript,用于解决版本兼容性和弱语言的特点,从而互相推动了各自的发展。时至今日,React 、Vue也要加入 TypeScript 的阵营,因此我们不得不去学好 TypeScript。u003Cu002Fpu003Eu003Cpu003E除了主流前端框架集成的问题,还有一个重要的原因,TypeScript 紧跟 JavaScript 的发展,比如 ES7 、ES8、ES9 相关语言的新特性都支持,比浏览器支持的速度更快。这就意味着你能用最新的语言特性,编写质量更高的 JavaScript。u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fdfic-imagehandleru002F6da71f54-5ec7-436d-8dc2-98709f8b9d0d” img_width=”1023″ img_height=”682″ alt=”前端开发者们,为什么我们还需要学习 TypeScript?” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Ch1u003E结束小节u003Cu002Fh1u003Eu003Cpu003E如果你是 JavaScript 的新手,笔者不太建议你一上来就学习 TypeScript,建议你还是从基础的 JavaScript 学起。之所以有 TypeScript 这个工具,并不是为了吸引开发者学前端,而是为每个 JavaScript 开发者能像其它高级语言一样编写更健壮的代码。u003Cu002Fpu003Eu003Cpu003E当初之所以有 JavaScript 就是为了便携和简单性,但是随着时间的发展,已经大大超出了当初设计者的初衷。如果是几百行代码还好,但是随着多设备支持(pc、手机、各种移动终端及大屏设备),产品线的增长,项目越来越大,如果还用原始的方式编写 JavaScript ,维护的难度可想而知。u003Cu002Fpu003Eu003Cpu003E学习TypeScript本身并不难。它像JavaScript一样编写和运行,只是增加一些新的理念和语法糖,我们学起来也会更加顺手。u003Cu002Fpu003Eu003Cpu003E今天的内容就到这里,我说了这么多,不知道是否能打动你去学习 TypeScript 呢 ?你有什么想法,欢迎到留言区发表你的意见。u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:前端开发者们,为什么我们还需要学习 TypeScript?

主题测试文章,只做测试使用。发布者:杀手梦三刀,转转请注明出处:http://www.cxybcw.com/10692.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code