首页 / 程序员 / 正文
TypeScript 让你不会想用回 JavaScript
帅帅2017 发表于:2020-3-21 13:39:55 复制链接 看图 发表新帖
阅读数:4589

下载APP可以快速和圈友联系

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
古语说的好,长江后浪推前浪。作为一位法式员,我一向很偏心JavaScript,不为什么,就是由于强大。可是,TypeScript的出现,与之构成对照,让我不能不起头斟酌TypeScript,下面我就为大师剖析一下我为什么要起头用TypeScript。

TypeScript 让你不会想用回 JavaScript-1.jpg

作者 | Jamie Morris

译者 | 苏本如,责编 | 毛中政

出品 | CSDN(ID:CSDNnews)

以下为译文

TypeScript 让你不会想用回 JavaScript-2.jpg

JavaScript能够是一种究竟上的现代Web开辟说话,它也是我一向是我挑选用来编写剧本的说话。用Python编写代码很风趣,可是假如我有一些工具要自动化,我会利用Node。

在曩昔,我挑选的办事器端说话是C#,但现在我感受它很拙笨,虽然它很强大。我已经天真地以为Node是办事器端说话的“神来之笔”,它满足了我编写代码的一切需求。我甚至可以有很多种分歧的方式利用JavaScript来编写安卓(Android)和iOS利用法式。

我并不是说JavaScript对于编写任何法式来说,是一个完善的工具,可是多年来它确切对我很是有用。

我一向果断地认可JavaScript在Web前台的繁重的开辟工作上的一些缺点,这包括了Gary Bernhardt在他的戏谑性的 “Wat?” 闪电演讲中使人一想起来就会失笑的例子。假如你历来没有看过这个视频,现在就停下你的阅读,赶紧去找这个视频看看。看完后你会感激我的。

Gary Bernhardt的这个闪电演讲现在已经成为我的保举阅读列表的一部分,和Jonathan Creamer所写的“面向23世纪的JavaScript系统结构”这篇文章一路显现给未来的前端开辟职员。

虽然自从ES6出现今后,这篇文章中的一些内容看起来是过剩的,可是它对于诠释JavaScript需要从“普通编程说话”改变思维的工作(倘使有这样的工作的话)有很大的帮助。这篇文章自己是我5年前起头自己的JavaScript之旅的一个重要缘由。

可是为什么我现在威胁说要再也不用回JavaScript呢?答案很简单,由于TypeScript。

TypeScript 让你不会想用回 JavaScript-3.jpg

TypeScript是什么?

我猜你们已经听说过TypeScript,假如没有的话,让我试着总结一下:TypeScript是强范例的JavaScript说话。

它增加了你们对强范例说话所期望的一些特征,而且需要一个编译步调(技术上这个步调叫“Transpilation”)来将TypeScript转换为JavaScript的代码。这是由于阅读器不了解TypeScript。

从技术上讲,TypeScript不增加任何新的运转时特征,它只是为开辟职员增加一些特征。

我听说有人把TypeScript说成是一种“不是爱它就是恨它”的开辟说话,可是我还没有见过一个用过TypeScript的人说恨它。可是我和很多不想尝试它的人交换过。那是大约2016年中的事,实在我也是其中之一。

我听到的同业们对TypeScript的最坏批评是,它是一套需要额外进修的工具。不但包括说话自己,还包括了构建进程。但是,大大都现代Web利用法式在其构建链中最少有一个链接以Babel的形式保存给JavaScript,而Babel是一个答应较新JavaScript在较旧的阅读器上运转的工具。

将TypeScript增加到这个链中不应当是件高难度的事,出格是由于Babel从v7版本起头就支持TypeScript编译。

虽然TypeScript不应当是一种高深的科学,但偶然它会让人发生这类感受。这就是为什么刚起头利用TypeScript的人偶然会挣扎着回到JavaScript上的缘由之一,由于JavaScript就在阅读器中运转。

TypeScript 让你不会想用回 JavaScript-4.jpg

TypeScript带来的益处

正如我上面所说,我从未听过有人利用TypeScript,这是件很遗憾的事。TypeScript带来的益处远远大于它的困难,出格是在Angular CLI(Angular号令行接口)或Create- React-App(注:是一个官方支持的建立React单页利用法式的方式)大行其道的阿谁时代,这两个工具都答应你在几分钟内起头一个新的支持TypeScript的项目。

我想你已经晓得这些益处是什么,但假如你不晓得的话,请答应我总结一下:

TypeScript的编译步调可以让你尽早发现题目,而不是期待运转时失利。

你的IDE现在甚至可以在编译步调之条件示你一些毛病。设想一下,假如你的IDE可以告诉你正在援用一个不存在的变量,大概正在利用毛病的参数来挪用一个函数,那真是反动性的进步!(固然,这里我是恶作剧的,由于“实在的”编程说话很多年前就有了这些功用)

当ECMAScript(驱动JavaScript说话的标准)中提出新的特征时,TypeScript可以很早地采用它们,让你一向连结在技术最前沿。

但现实上,TypeScript的首要益处是,它可以让你的代码以JavaScript没法描写的方式停止自我描写。

你能够以为,当你是一个项目标唯一开辟职员时,JavaScript并没有那末糟糕,由于一切的工具都在你的脑子里,而且你有完善的记忆力,是这样吗?不,你错了。即使作为一个项目标唯一开辟职员,我在编写代码时也轻易出现一阵阵忘记症。

现在,当我编写普通的JavaScript时,我厌恶阅读一个函数的界说来搞清楚若何利用它。我不晓得它会返回什么(倘使有返回值的话)大概它接管什么样的参数。我能够晓得参数称号和个数,但这并不总是充足的(以下面代码所示):

1 Function doTheThing {

2 let error = false;

3

4 // About a million lines of code that might cause an error

5

6 return error;

7 }

8

9 function consumeTheThing {

10 let error = doTheThing;

11 if (error) {

12 // What do I do with the error now?

13 }

14 }

这就是我想要表达的。这里的“error”是一个布尔型的值吗?当我看到第2行时,它看起来确切是这样的,可是从那边到竣事的“doTheThing”行之间的一百万行代码中心的“error”呢?它能够是一个字符串,大概一个工具,大概天晓得是什么。

你能够会以为这类灵活性是一种资产。它可所以,但更多的时辰,它是一个圈套,勾引你进入一种轻易出错的方式,在你和你的同事之间制造很多小挫折。有没有在进入他人的代码中,感应自己像在迷宫里的感受?

这就是你的代码在他人看来的样子。你可以用JavaScript编写“好”的代码,可是很少有关于该说话的内容激励你这样做。

而这正是TypeScript的美好地点。它不会逼迫你成为一个好的开辟职员。但它给了让你成为好的开辟职员的工具。

TypeScript 让你不会想用回 JavaScript-5.jpg

TypeScript弱点

TypeScript有弱点吗?固然有。

更多的打字(指定范例),不管是从两个方面的那一个来看都是这样。你的键盘会磨损得更快(这能够是你们中利用蝴蝶键盘的人所担忧的),这没什么大不了的。

可是一些JavaScript开辟职员厌恶在每个新函数或变量中键入范例。你不必非这么做不成,可是假如你不利用范例,为什么要利用TypeScript呢?

由于代码必须编译,是以每次更新和测试运转需要稍长一点时候。实在需要的只是多几秒钟而已,而利用TypeScript节省的时候远远跨越编译它所花费的时候。

构建一个项目标复杂性偶然是很是疾苦的。这是真的。假如你不熟悉你的构建工具,构建一个新项目能够是一个使人沮丧的体验。

短期内我的倡议是找一个启动项目让你起头。至于持久的倡议,我倡议你花时候进修工具-tsc,Babel,WebPack和一切的有用的工具。

我感觉我的论点有点偏向性。我并没有把重点放在TypeScript的弱点上,而是放在更多地夸大优点上。我猜这也是我不会花太多时候论证每顿饭都吃麦当劳的益处的缘由,由于这样做的益处是有限的(不用再做饭了……我想只是这样)。

TypeScript 让你不会想用回 JavaScript-6.jpg

关于TypeScript的统计

像平常一样,StackOverflow供给的数据会判定我的看法是对还是错。概况上的数据来看,我似乎错得太离谱了。

按照StackOverflow 2019开辟者观察报告,JavaScript已经持续第七年景为StackOverflow上议论最多的说话,67.8%的受访者都在利用它,而TypeScript在这个排名中名列第十,它正在被21.2%的受访者利用。

可是在2018年,TypeScript的这个统计数字只为17.4%,而再前一年仅为9.5%。2016年的时辰,甚至只要0.47%的受访者利用TypeScript。

在这个角度来看,TypeScript这些年来有了惊人的增加,这首要归功于Angular框架,它在早些时辰放弃了对JavaScript的支持。

当你看到“最受接待”的说话排名时,TypeScript的表示加倍抢眼了,它以73.1%的比分排名了第三位(位列Rust和Python以后)。而JavaScript以66.8%排在第11位。

TypeScript 让你不会想用回 JavaScript-7.jpg

远景

我不以为TypeScript会很快取代JavaScript,了解后者对于前者的工作相当重要。而且我们也不会看到TypeScript在任何阅读器中以本机方式运转。

TypeScript是一个预处置器,就像之前的CoffeeScript一样。TypeScript和CoffeeScript的区分在于后者是对构建它的说话的根赋性改变,而TypeScript是一种自然演变。这不但仅使得进修它更轻易,而且使得从JavaScript项目转换为TypeScript的进程更加渐进。首先简单地将一切以.js结尾的文件重命名为以.ts为结尾的文件,你就有了一个TypeScript项目!

然后,你便可以一步一步地起头采用TypeScript的说话特征。我不能保证这个进程会很轻易,可是它会告诉你一些JavaScript永久没法做到的工作。当你起头下一个项目时,TypeScript编译器将会在那边期待你。

所以,利用了TypeScript,我晓得我再也不会用回JavaScript了。

原文:https://medium.com/JavaScript-in-plain-english/ill-never-go-back-to-JavaScript-16370dc264a0
本文为 CSDN 翻译,转载请说明来历出处。
【End】


上一篇:不晓得C++这七大特征,绝对枉为圈中人
下一篇:我用了3个月整理了超全Python一切库,用过的都是年薪百万大佬。
温馨提示:
下载好向圈客户端可以随时随地交流学习经验,也可以和圈友发起聊天成为好友
好向圈www.kuaixunai.com是一个专业经验分享交流平台,请提供优质的经验内容分享,拒绝任何广告内容出现,低质量广告内容硬广包含手机号码,微信,QQ或者二维码,网址等形式存在可能会审核不通过 要想被各大搜索引擎尽快收录请做好内容原创工作,才会有更好的推广效果。
返回列表
使用道具 举报
11 条评论
您需要登录后才可以回帖 登录 | 立即注册
羣众 发表于 2020-3-21 13:40:03 | 阅读全部
适合我这种用惯强类型语言的,java, kotlin, ts, js, rust
使用道具 举报
回复
想做平凡人2017 发表于 2020-3-21 13:40:50 | 阅读全部
刚开始用确实很不习惯,不过用熟悉后感觉确实不错,写代码更得心应手一些,纠错能力更强特别是面向对象编程的时候!
使用道具 举报
回复
也许吧777 发表于 2020-3-21 13:41:48 | 阅读全部
浏览器能不能直接运行ts? ts到最后是不是还得编译成js才能运行?多此一举浪费精力,等浏览器能直接运行ts再考虑追不追。
使用道具 举报
回复
付东 发表于 2020-3-21 13:42:38 | 阅读全部
说实话,开发 react 还是 js 方便,比用 ts 少写打很多字,只在写 egret 的时候用 ts 。
使用道具 举报
回复
坐前点 发表于 2020-3-21 13:43:21 | 阅读全部
用react的时候类型太多了还都是泛型的 无疑门槛高了
使用道具 举报
回复
123465612 发表于 2020-3-21 13:43:28 | 阅读全部
手会更累,这倒是真的
使用道具 举报
回复
123465564 发表于 2020-3-21 13:44:16 | 阅读全部
在react引入ts踩了大量的坑
使用道具 举报
回复
向厚赚 发表于 2020-3-21 13:44:54 | 阅读全部
跟C#太像了
使用道具 举报
回复
你该穿秋裤了 发表于 2020-3-21 13:45:28 | 阅读全部
若类型语言优势就是灵活,又给按死了那不如直接webassembly
使用道具 举报
回复
柠檬不萌但心酸 发表于 2020-3-21 13:46:28 | 阅读全部
这东西不用再安利,用就行了,被打脸的人还少么?
使用道具 举报
回复
123465573 发表于 2020-3-21 13:47:20 | 阅读全部
“神来之笔”
使用道具 举报
回复
相关推荐
广告合作以及侵权投诉客服QQ:1623331347 江苏好向圈信息科技有限公司 网站地图1 网站地图2