美文网首页前端面试工程师大前端从入门到跑路
typescript笔记一:有了JS,我们更需要ts

typescript笔记一:有了JS,我们更需要ts

作者: brandonxiang | 来源:发表于2019-06-20 22:55 被阅读2次

typescript诞生了七个年头,类型的检查对于前端工程师来说,到底意味着什么?

如今的前端工程师需要学习的东西太多,既是需求非常多,加班很厉害,项目类型非常多。但是依然不能把前端所有的方面都覆盖到。有了JS,有了ESNEXT,我们还真的需要TS吗?我以前的想法是ES是亲儿子,未来的浏览器也会支持ESNEXT语法,现在用只是为以后做准备。先学也对于前端工程师生涯发展有帮助,并不在意TS的发展。如今TS的发展可以说是风生水起。这究竟是什么一种情况?

其实原因也很简单,究其原因有这么几个:

  • TS贴近ES
  • TS的编译能力强而且稳定
  • TS的生态非常好

TS贴近ES

TS的class的提案非常早就确立了,而且拥有 private 和 public 属性,不填也是可以的。

TS的生态

ts和babel

typescript可以和babel结合,babel-preset-typescript。ts不是一个人在战斗,由于JSX并非模版语言,它是babel识别的语法,基于typescript 和babel的联袂合作,才有了TSX。

ts和node

typescript不能直接在node上运行,TypeStrong/ts-node,为了node执行服务提供开发的方便,实际部署生产环境,你可以将代码编译成为commonjs便于node服务器运行。

eslint

在tslint的让位后,eslint和typescript有机地结合,形成了可怕的生态链。typescript-eslint可以让ts的项目与vue或者react等其他厂商代码风格有趣共存。

DefinitelyTyped

DefinitelyTyped/给一些非ts编写的项目提供了便于开发者的类型定义文件,也符合微软的intellisense提示功能,在VSCODE上有非常好的开发体验。

吐槽

不像TS和react的完美结合,TS和vue之间则是有点隔阂。首先,vue2.0的对象声明写法让大量变量保存在vue对象当中,让ts并不好推断它的类型。举个栗子,vuex中的mapGettersmapActions等魔法函数曾经是尤雨溪引以为傲的“艺术创作”。在ts面前则是非常“愚蠢”,store里面变量的类型不好判断。还有,plugins的机制也是把属性直接绑在vue对象当中,同样造成很多问题,我就不说mixins。

有些人说用class写法,首先,vue的class写法大大增加代码的学习成本,其次,尤大大在vue conf上直接class提案中修饰器的不稳定性。所以我还是建议大家不要使用vue的class写法。

在vue3.0的设计当中,新的语法有效避免this属性的使用。我相信ts在vue项目中会发展得很好,大家期待一下vue3.0吧。

相关文章

  • typescript笔记一:有了JS,我们更需要ts

    typescript诞生了七个年头,类型的检查对于前端工程师来说,到底意味着什么? 如今的前端工程师需要学习的东西...

  • Typescript

    TypeScript(TS)部分 TypeScript学习笔记

  • TypeScript从d.ts说起

    TypeScript从d.ts说起 TypeScript(以下简称TS),作为JavaScript(以下简称js)...

  • typescript

    typescript ts暂时不被支持,所以需要编译使用;ts补充了js没有的语法特性,例如类型,接口,抽象等;由...

  • node.js + vscode + typescript

    添加第三方库 node.js无法直接解析执行ts代码, 所以需要安装typescript将ts代码转换成js代码....

  • 第一个TS小项目--计算器

    看过typescript官网的5分钟上手之后,觉得语法上像极了JS,相比JS,TS更注重于 'type' (这样一...

  • 批处理dtsmake【仅适合win系统】

    我们写typescript的时候一直想希望用到工具将js转换为d.ts文件,这样可以直接让ts调用其中的js代码。...

  • Webpack概念引入

    一、网页中引用哪些常见的静态资源 JS,.js/.jsx/.coffee/.ts(TypeScript) CSS,...

  • 玩转Vue_Webpack

    在网页中会引用哪些常见的静态资源?? JS .js .jsx .coffee .ts(TypeScript ...

  • 8.Webpack

    在网页中会引用哪些常见的静态资源? JS .js .jsx .coffee .ts(TypeScript ...

网友评论

    本文标题:typescript笔记一:有了JS,我们更需要ts

    本文链接:https://www.haomeiwen.com/subject/aewgfxtx.html