×

typescript

typescript(TypeScript前景怎么样)

admin admin 发表于2022-09-11 05:22:37 浏览90 评论0

抢沙发发表评论

本文目录

TypeScript前景怎么样

谢谢邀请!

在回答这个问题之前,我们首先要搞清楚,typescript是什么?它有什么好处,能给我们带来什么收益?

什么是typescript?

它是由微软公司开发的一套脚本语言,作者认为它是普通javaScript的SuperSet。它并不能直接运行在浏览器或者服务器上,所以呢,在运行之前需要经过编译时的处理。官网说编译后可以运行在任何平台、任何服务器、任何系统上。它也是开源的,大家可以到某著名代码托管平台查看源码,但是个人理解这个开源最终解释权还是微软公司来定。-typescript

typescript的编译

我相信每一个学习ts的同学对它的第一印象绝对是它能做类型检查,比如对一些变量,函数的参数以及返回值等等做类型检查,这些检查都是在编译时做的,当你在使用编译器转换成js的过程中就可以检查出来很多错误,这样可以减少出现bug的几率,提高我们代码的质量。ts作者已经为我们提供了很好用的cli,我们可以根据自己的需要定义tsconfig。-typescript

普通的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,整体活跃度还是不错的,所以前景还是明朗的。-typescript

个人理解,ts更适合通用性很强的代码,不适合迭代速度很快的业务代码。另外对人员素质要求也变的更高,选型应该量力而行。

喜欢我的回答就关注我吧,有问题可以发表评论,我们一起学习,共同成长!

作为前端,有必要去学习TypeScript吗

感谢邀约,你的这个问题提的很好,10月5日凌晨,对于Vue来说是个重要的日子,尤雨溪公布了 Vue 3 源代码,这次源代码最大的亮点就是 98% 以上使用TypeScript 编写,目前就有一个很现实的问题摆在我们前端开发者的面前,如果你不学习 TypeScript ,Vue 源代码你就看的很吃力。-typescript

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

小节

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

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

TypeScript和JavaScript的区别

区别主要有两点;

javascript和typescript的区别一:概念对比

JavaScript 是一种轻量级的解释性脚本语言,无需编译,可嵌入到 HTML 页面中,在浏览器端执行,能够实现浏览器端丰富的交互功能,为用户带来流畅多样的用户体验。

TypeScript代码保存在ts文件中,ts文件经过编译之后会生成一个js文件,任何有效的JavaScript代码都可以直接作为TypeScript代码编译,只不过编译过后的代码与原JavaScript代码相同,TypeScript代码编译后则会转换为对应的JavaScript代码。-typescript

javascript和typescript的区别二:内容对比

1、TypeScript 引入了 JavaScript 中没有的“类”概念。

虽然ES6已经支持类,但是TypeScript与ES6的类还是不完全一样的,ts代码可以通过类型注解声明变量的类型。

2、TypeScript 中的数据要求带有明确的类型,JavaScript不要求。

3、TypeScript 通过类型注解提供编译时的静态类型检查。

通过对比可以清晰的看到,在ts代码中可以在声明变量的时候加上“: 类型“来描述变量的类型,即类型注解。

4、TypeScript 从核心语言方面和类概念的模塑方面对 JavaScript 对象模型进行扩展。

5、JavaScript 代码可以在无需任何修改的情况下与 TypeScript 一同工作,同时可以使用编译器将 TypeScript 代码转换为 JavaScript。

6、TypeScript 为函数提供了缺省参数值。

在TypeScript的函数中我们可以给每个参数提供类型注解,还能为函数提供返回类型注解(在参数列表后的“:类型“),同时TypeScript可以在参数名右边加上一个?表示可选参数。

7、TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。

随着JavaScript越来越完善,还有必要学习TypeScript吗

如果你是一名前端开发人员,就有必要学。

首先作为开发人员,只要和自己工作相关,有任何先进的工具,语言或者技术出现,都要及时关注,并且抽空学学,做个 Demo 用一用,然后你才会知道为什么会出现新技术,是要解决什么问题的,无论当前项目中是否使用,你都应该了解他。-typescript

Typescript(TS) 是 Javascript(JS) 的超集,拥有更多的语法特性,JS 有的特性它都有,JS 没有的特性或者以后要有的特性,它可能也有。TS 完全兼容 JS,两者还可以混在一起使用,TS 最终会编译成简洁、规范的 JS 代码。-typescript

1、类型注解

可以给变量声明类型,编译成 JS 时会进行类型静态检查;器智能提示,写代码时器直接提示出来变量、类、方法(参数)、关键词等供你选择,减少写错机会,大大提高开发效率。

2、面向对象特性

支持类、接口、模块。更容易封装进行模块化开发,方便设计构建业务复杂的大型系统。

3、开源,流行

Typescript 是开源的,并且有微软,谷歌这样的大公司的支持。使用广泛,VS Code 就是用 TS 开发的,AngularJS、ionic 等流行的框架也是使用 TS 作为开发语言,以后会有更多的项目使用。-typescript

以后web应用越来越复杂,还是学学吧!

TypeScript有可能完全成为JavaScript的替代品吗

我觉得不会,虽然说ts写法比较规范,但喜欢用js的也大有人在,而且在像cocos creator这类游戏引擎编写脚本代码的时候,就算你是用ts写的,但最终编译的时候还是编译成js。不可否认用ts是一种趋势,但js也有其存在的价值,所以我个人认为不会被完全替代。-typescript

TypeScript解决了什么痛点

TypeScript 本身就不细说了,无非就是微软推出来的一个 JavaScript 的超集而已。

既然 TypeScript 被定义为 JavaScript 的超集,那么TS的出现必然是为了解决JS所存的问题,那么JS存在什么问题呢?

1、弱类型,这TM的是真的弱啊。通篇只需要用 var 声明一下就可以了,甚至你不声明也能用。这还是小事,谁又能体会变量提升带来的莫名其妙的问题?好在有 let 了,可惜仍旧没强类型。

2、对象,Java说我有类,JavaScript说我有原型;Java说我有继承,JavaScript说我有原型链。谁能说说类和原型有嘛区别?哪个神又能把原型链说得明明白白?

3、我能说 == 和 === 是不一样的吗?你能想象判定等于时的纠结滋味么?

4、有谁知道 变量 判断 要同时进行 null 和 undefined check吗?我可以说 undefined 是一个类型么?

5、有谁知道 NaN 是一个类型么?对了,我们JS还有一个 isNaN的方法呢。

6、还有一个闭包,我 f.u.c.k,谁有本事别背书,来给老妖解释一下,再解释一下你在哪种场景下会使用闭包?

欢天喜地迎财神,啊,不对,是迎TS。

自从用上了 TS,把我给激动的啊。连每天上厕所的次数都翻了倍。

TS好,TS妙,TS好的呱呱叫。

1、静态类型化,通过类型注解提供编译时的静态类型检查

2、大型的开发项目,使用TypeScript工具来进行重构更容易、便捷。

3、类型安全,在编码期间检测错误的功能,而不是在编译项目时检测错误。我们终于抛弃了弱鸡。

4、引入了JavaScript中没有的“类”概念。

5、引入模块的概念,可以把声明、数据、函数和类封装在模块中。

絮絮叨叨地说了半天,老妖兴奋的眉毛都翘了。总之,如果前端项目规模比较大,建议你上TS别含糊。如果就几个网页那还用JS吧。

TypeScript会成为ES的标准吗

不会~

ES:全称ECMAScript,简称ES。第一个版本是在2015年6月进行发布,叫做ES2015,后面以每年一个版本的速度发展到如今的ES9。ES是一种规范,所有的主流浏览器需要遵循ES的规范去实现,而我们熟知的JavaScript是ES规范的实现。-typescript

TS:全称TypeScript,简称TS。TS是微软发布的一款编程语言,定位是JavaScript的超集(兼容JS),但是他必须经过编译后才能运行在JS环境中。核心功能是类型系统和提前实现ES的新特性。-typescript

是不是觉得TS终于支持类型检查了?有点高级语言的味道了?所以就觉得这么牛逼的语言迟早会成为ES的标准?个人认为TS不会成为ES的标准,主要有以下几点原因:

  1. TS的定位是JS的超集,有一个先后顺序的,不是说你TS牛逼,出了一些新特性,然后ES就纳入标准了。而是ES先出proposal,你TS去实现支持,没啥大的问题然后就纳入ES标准了。明白了这个关系了吧?-typescript

  2. 主流浏览器只认ES标准,现在已经完美兼容支持ES6语法了。TS是不能在浏览器运行起来的,TS是基于JS实现的,必须打包编译成JS语言才能跑起来。

但是TS一定是前端同学必须掌握的语言,他的类型系统让你在开发编译阶段就能发现类型不一致问题,同时也可以减少一堆类型检查的代码,一些框架(vue3.0)也会基于TS语言进行开发,TS能够提前享受ES的新特性。-typescript

以上是个人认为TS不会成为ES的标准,你觉得呢?欢迎交流讨论,批评指正~

目前前端项目用TypeScript开发的多吗

没用。

JS的特性就是灵活,比如一个函数一个参数,拓展性放开就是把入参弄成一个对象。

当对象加混合够用的时候就没有必要上class,当对象加混合不够用的时候再用class的继承特性,同时失去了混合的灵活性。

同样道理,JS加新特性够用的时候,没必要上TS,当JS加新特性不够用的时候,再使用TS的约束,同时失去了JS的灵活性。

很明显,绝大部分的场景JS加新特性足够了,与其约束TS,不如提升规范与模式。

大部分推TS的,得是Java(C#)转行或者提意见,纯原生的前端提TS就是东施效颦,以为可以更好的约束,实际上是成本远远大于效果(招人,培训等等),当别人问到的时候,含着痛苦的眼泪表示“TS真香”(别问我怎么知道的)。-typescript