typescript是什么(深入理解typescript)
- 开发语言
- 2023-08-13
- 72
大家好,关于typescript是什么很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于深入理解typescript的知识点,相信应该可以解决大家的一些困...
大家好,关于typescript是什么很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于深入理解typescript的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
作为前端,有必要去学习TypeScript吗
感谢邀约,你的这个问题提的很好,10月5日凌晨,对于Vue来说是个重要的日子,尤雨溪公布了Vue3源代码,这次源代码最大的亮点就是98%以上使用TypeScript编写,目前就有一个很现实的问题摆在我们前端开发者的面前,如果你不学习TypeScript,Vue源代码你就看的很吃力。
因此,关于你的提问,我可以肯定的告诉你,作为前端开发者,我们此时比以往任何时候更需要学习TypeScript,以下是针对这个答案的观点,欢迎大家指正。
首先我们来了解下什么是TypeScriptC#语言的创始人AndersHejlsberg设计了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可谓发展迅速,可谓全平台通吃,现流行称作“大前端”,目前前端不仅能做网站、还能做手机端、WebGL3D动画、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却很好的解决了此问题,你可以按需输出你需要的脚本,比如ECMAScript3、ECMAScript5、ECMAScript6。同时TypeScript还与时俱进,紧跟JavaScript的新特性,这就意味你可以使用这些新特性进行编写,无需考虑其是否兼容,兼容的事情都交给JavaScript编译器吧。
3、代码规范标准,有利于团队协作开发
现在的互联网产品越来越复杂,形态又多,各终终端,一个产品不可能只有一个前端进行开发,现在前端开发也是团队的开发模式,刚才提及到JavaScript本身的特点还有其发展太快,这就会造成每个人写代码的随意性就会很大,你当然可以为团队引入eslint这些插件进行代码质量检查,但是你要整理出这些规范来估计要花费不少的时间。与其花时间在这上面,还不如在TypeScript的基础上,结合TypeScript的特点做一套标准即可来应对JavaScript版本不断更新的特点。
最后给前端初学者的一些建议如果你是JavaScript的新手,我不建议你一上来就学习TypeScript,等你有了一定的基础,对前端的概念和逻辑有一定的认知后,再学TypeScript也不晚,并且学习起来更快,这样你就会写出更健壮的TypeScript。TypeScript这个工具的设计初衷并不是为了吸引更多的人学习前端,而是为了让具有一定基础的前端开发者编能像其他高级语言开发者一样编写出质量更高的健壮性的代码。
小节今天的内容就分享到这里,不知道我的这些观点是否能说服你去学习TypeScript。还有一个原因我漏掉了,我在这里补充下,你会发现目前端岗位的招聘需求里有的公司都明确要求熟练掌握TypeScript啦,学习TypeScript本身并不难。它像JavaScript一样编写和运行,只是增加一些新的理念和语法糖,我们学起来也会更加顺手,加油吧,现在开始学习TypeScript并不晚。
感谢大家阅读,如果你有什么好的想法欢迎到留言区分享交流,如果你赞同我的回答,欢迎给个赞和转发,谢谢支持。dart和typescript区别
dart是谷歌开发的一种通用的基于类的面向对象的语言,具有c语言风格语法,可以选择编译成JavaScript;typescript是微软开发的纯面向对象编程语言,是强类型的JavaScript超集,可以编译成纯JavaScript。
typescript 性能
TypeScript是JavaScript的超集,.js文件可以直接重命名为.ts即可
即使不显式的定义类型,也能够自动做出类型推论
可以定义从简单到复杂的几乎一切类型
即使TypeScript编译报错,也可以生成JavaScript文件
兼容第三方库,即使第三方库不是用TypeScript写的,也可以编写单独的类型文件供TypeScript读取
TypeScript前景怎么样
谢谢邀请!
在回答这个问题之前,我们首先要搞清楚,typescript是什么?它有什么好处,能给我们带来什么收益?
什么是typescript?它是由微软公司开发的一套脚本语言,作者认为它是普通javaScript的SuperSet。它并不能直接运行在浏览器或者服务器上,所以呢,在运行之前需要经过编译时的处理。官网说编译后可以运行在任何平台、任何服务器、任何系统上。它也是开源的,大家可以到某著名代码托管平台查看源码,但是个人理解这个开源最终解释权还是微软公司来定。
typescript的编译我相信每一个学习ts的同学对它的第一印象绝对是它能做类型检查,比如对一些变量,函数的参数以及返回值等等做类型检查,这些检查都是在编译时做的,当你在使用编译器转换成js的过程中就可以检查出来很多错误,这样可以减少出现bug的几率,提高我们代码的质量。ts作者已经为我们提供了很好用的cli,我们可以根据自己的需要定义tsconfig。
普通的js编译通常会有以下几个步骤:
扫描分析->AST->转换->目标代码
ts在这个中间加入一步代码类型检查:
扫描分析->AST->类型检查->转换->目标代码
在你开发ts的时候,cli可以实时提示代码问题
注:ts不仅仅可以转化成js,也可以转换成其他语言
typescript的优点首先,个人理解类型检查是它最大的特点,也可以说是它最大的优点,所有的配套设施都是围绕着它来做的。
其次,ts提供了诸如接口、抽象、泛型、private、protected、public等在其他语言诸如java,c常见的方式,这些东西都是原生js不具有的,所以开发思想需要有所转变。
第三点,ts提供了最新的js语法支持
第四点,angular2就是用ts开发,如果你的团队选择它作为技术栈,那么ts就是你的基础,学会了ts就很自然的可以开发angular
typescript的活跃度ts语言本身大概几个月发布一个新版本,目前90%的知名的开源库都提供类型定义文件,自己也能很方便的发布ts开源代码。目前bat等一线互联网公司也都或多或少的在使用typescript,整体活跃度还是不错的,所以前景还是明朗的。
个人理解,ts更适合通用性很强的代码,不适合迭代速度很快的业务代码。另外对人员素质要求也变的更高,选型应该量力而行。
喜欢我的回答就关注我吧,有问题可以发表评论,我们一起学习,共同成长!
TypeScript真的有必要吗
TS属于高端技术,如果你的团队还在调不通接口、传参格式不对、连团队规范都很少,那么,强行上TS,你是打算项目遥遥无期了吗?
好了,文章到此结束,希望可以帮助到大家。
本文链接:http://www.xinin56.com/kaifa/7331.html