浅尝了一下 Typescript,上头了!
为什么尝,怎么就上头了?
前两篇不是写道尝试了以下 TUIRoom 组件吗?这个组件的技术栈里就包含了 TS,因为我也算是正式把 TUIRoom 这个组件集成到业务中去了,所以肯定不能直接挂上官方的快速跑通的案例就不管了啊,一定是得需要对案例进行修改,符合我们自己的系统逻辑才行。
这一改不要紧啊,TS 咱之前只是听说过,压根没用过啊,也正好赶上那天喝了点酒,所谓酒壮怂人胆,硬着头皮就开始改了。
这又一改也不要紧啊,我发现这个 TS 的语法结构,跟我们常用的后端语法结构更像,然后反正也没系统的了解过 TS,就凭着感觉乱改一气!巧的是,改了半天,编译通过了,业务跑通了,我,上头了!
劝君更进一杯酒
TypeScript 就像是美酒,如果你还没尝过?请一定找机会尝一尝!
因为我也是刚刚接触,所以没有什么实际的经验,有的,也就是刚刚集成 TUIRoom 的经验和刚刚看了不到半天(2022.7.9)左右 TypeScript 文档的经验。所以我的“劝酒”可能显得很没有说服力,但从另一个角度来讲,正是因为我从来没有接触过 TypeScript,仅仅是一次偶然的机会接触到,就如此入迷,对初学者来说,也算的上是一个普通案例吧。
说了半天,都是屁话,有点实际的不?
额。。。不怕您笑话,我还真没多少内容,但气氛都烘到这了,不来点实际的也说不过去了!
来吧,我就以一个 24k 纯初学者的身份,来安利点 TypeScript 的好处!
回顾一下
上篇聊 TUIRoom 的时候,我贴了几段 TS 的代码,涉及到的业务就是,做一些验证,从服务端获取一些数据这些基本流程。
而 TS 中其实涉及到了后端常用的概念,比如接口,类,枚举,泛型等等(所以它对纯前端并不是特别友好,但如果你是大前端,那你肯定得更深入的了解 TypeScript)
像我之前的例子,获取 UserSig 的函数,我是这么写的
这其实是典型的“Javascript”式写法,除了一些结构上的不一样,具体的写法是完全一样的,而且,TS 本身也是完全支持我们把 ts 文件写成 js 风格的!因为毕竟 JS 才是大爷,TS 只是弟弟,官方的说法是,TypeScript 是 Javascript 的超集,经过编译后的 TS 代码,最终都将成为 JS 代码(长大后我就成了你)。
官方的介绍里,还有这么一段
采用 TypeScript 并不是一个非此即彼的选择,因此你可以逐步迁移代码库。 你可以先用 JSDoc 来注释现有的 JavaScript,然后切换一些要让 TypeScript 检查的文件。 你可以在一段时间内准备代码库以实现完全转换。
有关此过程的详细信息,请参阅 TypeScript 教程:从 JavaScript 迁移。
好了,再来看刚才那段代码,怎么突出 TS 特色,其实非常简单
只是在形式参数那里加上一个“:string”的类型限制。
在 JS 环境下,没有所谓的类型限制,也就是你这个方法定义完成后,实际上各种类型都是可以传入的,而 TS 不同的点,就是它可以限制变量类型,尽管这种限制只是停留在了编译阶段,但对于开发来说,这就足够了,因为编辑器本身可以帮我们快速的定位错误。也就是 JS 阶段,你定义了一个公共方法,然后可能很多地方都需要用到,用着用着,就不知道原函数到底长什么样,或者别的地方都是怎么用的,有没有加变量类型的判定这些问题,这时候,如果你要修改源函数的话,就会是一件非常痛苦的事情。而在 TS 环境下,就不一样了,编辑器可以帮我们做这件事,你只需要定义好源函数需要传入的变量类型,所有的引用处就基本都是符合要求的引用,修改起来也会更方便,相信后端肯定都知道我在说啥!
像上面的例子,如果我在调用处,传入一个整型类型的变量,编辑器就会报错,就像这样👇
继续喝
好了,其实关于 TS 更多的实际例子,我这就不在多说了,还是推荐大家到更加官方的地方去了解。我这里主要推荐两个地方
第一个微软的文档地址,他是一个渐进式的学习文档,概念的讲解,练习就都在这里了,我感觉非常不错!
另一个是一个国人的博客地址,看样子应该是写成了书,然后现在公开了电子版,版本也比较新,我感觉也很不错。
其他的还有一些中文手册啊,版本都有点老了,但关于基础知识的讲解肯定也是没啥毛病。
对了,还有一个英文地址,适合边学习边练习英语,虽然他也有中文地址,但手册文档什么的,还都是英文。
好了,今天就这样了,TypeScript 这瓶酒,我肯定会继续喝,后续有了新的总结,再来更新。
版权声明: 本文为 InfoQ 作者【为自己带盐】的原创文章。
原文链接:【http://xie.infoq.cn/article/d6ab9a4546409a1806bf3fd01】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论