并不是说它是适用于一切的完美工具,但是多年来我一直为我服务。 我一直在讽刺地承认在家庭主力马网上出现的缺陷,包括加里·伯恩哈特(Gary Bernhardt)嘲讽的" Wat?"。 闪电般的谈话让我仍在思考。 如果您以前从未看过它,请立即停止阅读并继续观看。 您可以稍后感谢我。
闪电般的谈话已成为我推荐给前端开发人员的推荐阅读清单(查看清单还是消耗清单?)的一部分,还有乔纳森·克里默的" 23世纪JavaScript架构"。 尽管自ES6问世以来,上一篇文章中的某些内容似乎是多余的,但是它对于解释JavaScript所需的思路还有很长的路要走,这需要从"常规"编程语言(如果有的话)转变思维方式。 仅那篇文章是我5年前开始自己的JavaScript Odyssey的大部分原因。
那么,为什么我现在扬言要离开,再也不回来了? 答案很简单。 打字稿。
什么是Typescript?
我假设您听说过Typescript,但如果没有,请尝试总结一下:Typescript是强类型的Javascript。 它添加了您期望强类型语言的功能,并且需要一个编译步骤(从技术上来说是"翻译")才能将Typescript转换为JavaScript。 这是因为浏览器不了解Typescript。 从技术上讲,Typescript不会添加任何新的运行时功能,而是为开发人员添加功能。
我听说有人形容Typescript是喜欢它还是讨厌它,但是我还没有和任何尝试过并讨厌它的人交谈。 我已经与许多犹豫不决的人进行了交谈-大约在2016年中,我就是其中之一。 但是,我听到的同行对Typescript的最严厉批评是,这是一种额外的学习工具。 不仅是语言,而且还有构建过程。 但是,大多数现代的Web应用程序在其构建链中至少有一个链接以Babel的形式保留给JavaScript,Babel是一种允许较新的JavaScript在较旧的浏览器上运行的工具。 将TypeScript添加到该管道中不应该是火箭科学,尤其是因为Babel自v7起就支持Typescript编译。
它不应该是火箭科学,但有时会有这种感觉,这就是Typescript新手有时会挣扎并回到浏览器中运行的JavaScript受欢迎的原因之一。
好处
但是正如我所说,我从未听过有人采用Typescript并为此感到后悔。 好处远胜于困难,尤其是在使用Angular CLI或Create React App的时代-两者都使您可以在几分钟之内开始使用启用了Typescript的新项目。
我假设您知道这些好处是什么,但是如果您不知道,请允许我总结一下:
但实际上,主要好处是Typescript使您的代码能够以JavaScript无法做到的方式进行自我描述。 当我是项目的唯一开发人员时,JavaScript并不是很糟糕,因为我可以将所有事情都牢记在心,并且我拥有完美的记忆,对吗? 错误。 即使是唯一的开发人员,我编写的代码也容易失忆。 如今,当我编写普通的JavaScript时,我讨厌不得不去阅读函数定义以弄清楚如何使用它。 我不知道它返回什么(如果有的话)或它接受什么样的参数。 我可能知道参数的数量及其名称,但这并不总是足够的:
这就是我的意思。 "错误"是布尔值吗? 当我看到第2行时,它看起来肯定是这样,但是那到" doTheThing"末尾之间的一百万行代码又如何呢? 它可以是字符串,对象或知道什么的人。
您可能会说这种灵活性是一种资产。 可能是这样,但更常见的是它是一个陷阱,诱使您采用简单的方式,这会在您和您的同伴之间引起许多微小的挫败感。 曾经在别人的代码中间,觉得自己在迷宫中吗? 那就是别人的代码。 您可以用JavaScript编写"好的"代码,但是很少有人鼓励您这样做。
这就是TypeScript的美。 这并不会迫使您成为一名优秀的开发人员。 但这为您提供了实现此目标的工具。
缺点
有缺点吗? 当然有。
有点像是我的观点是单方面的-我并没有在缺点和优点上投入太多精力 我想,出于同样的原因,我不会花很多时间在每顿饭上都吃麦当劳的好处-这样做的好处有限(不必再做饭了……我想就是这样)。
未来
我认为Typescript不会在短期内取代JavaScript-了解后者对于使前者发挥作用至关重要。 而且我们不会看到Typescript在任何浏览器中本机运行。 它是一个预处理器,就像之前的CoffeeScript一样。 Typescript和Coffescript之间的区别在于后者是对其所基于语言的根本改变。 Typescript是自然的演变。 这不仅使学习变得更容易,而且使将JavaScript项目转换为Typescript的过程更加繁琐。 首先将* .js重命名为* .ts。 现在,您有了Typescript项目! 然后,您可以一次开始采用语言功能。 我不能保证这会很容易,但是它将告诉您有关JavaScript从未有过的事情。 当您开始下一个项目时,Typescript编译器将等待
这就是为什么我永不回头。
编程语言(programming language)是一种被标准化的交流技巧,用来向计算机发出指令,定义计算机程序,让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动的一种计算机语言。 编程语言可以分成机器语言、汇编语言、高级语言三大类。计算机领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。
¥299.00
¥399.00
¥498.00
¥29.00