前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript,我从不喜欢到沉迷

TypeScript,我从不喜欢到沉迷

作者头像
前端bubucuo
发布2022-12-17 17:29:57
5780
发布2022-12-17 17:29:57
举报
文章被收录于专栏:bubucuobubucuo

从不喜欢 ts,到最近主动切换 ts ,记录下这个历程,也分享下自己的经验,希望一些方法和坑能帮助到小伙伴~

时间推回几年前,我刚刚自学 js 的时候,发现 js 居然不用定义类型,当时我对此表示很震惊。

毕竟学了好几种计算机语言了,第一次知道原来程序中还能不定义类型,毕竟以前写伪代码都要写类型。

刚开始我很不适应,写 var 的时候老是条件反射写成 int 或者 float 等类型关键字,毕竟以前定义一个值的时候,第一件要考虑的事情就是取什么类型。

写了两年 js 之后,我开始任性写 js ,别管我要干嘛,先 let 再说。所以后来同事推荐 ts ,我很排斥。没错,我就是不喜欢变化。

但是做讲师之后,我被迫开始写 ts,因为有ts的课的价格可以卖的高一些,对此我虽然抗议过,我教的是 react ,又不是 ts ,想学 ts ,就找 ts 的课去。但是市场永远都是第一位,我开始用 ts 写项目,但是平常我还是写 js~

但是,最近我开始写 ts 了,主动去写的,因为我记性不太好,又不喜欢写注释。然后,代码放久了,我自己都忘了某些函数组件的 props 是什么、某些服务端需要的 json 里都是什么,无奈之下,只能去翻代码,然后慢慢记起来,很麻烦。

我是一个很怕麻烦的人,于是我开始思考换 ts ,但是我自己也知道,我很久不写 ts 了,肯定手生。其实哪怕手不生,我以前的 ts 水平也是半斤八两,上来就给项目换 ts ,肯定好多不会。

于是,我开始思考怎么快速掌握 ts ,毕竟,人不想勤快的话,脑子就要勤快。

其实我以前看过很多次 ts 文档,但是每次都看的很困,还经常怀疑,干嘛要这样,真多余,王多鱼投的吗。

现在来看的话,很多怀疑是来自无知。比如我之前很不喜欢 ts 的各种松散定义,比如允许非严格的开启、随处可见的 any ,我觉得 ts 既然想要改变 js 的“不严谨”,但是结果它自己不也是这样吗。

但是认真去写了之后,我发现,是我的想法多余了。

低代码项目我刚开始是用 js 写的,前几天才完成 ts 的整改,工作量还是挺大的。好在我开启了 ts 的非严格模式,可以一个个文件的改,避免了一次性改七十多个文件出错不好找的可能。我为以前我对 ts 不严格的怀疑感到惭愧。

说回 ts 的学习,我之前断断续续看过 ts ,但是并不是特别熟,说白了,就是很多类型我不会定义。但是好在我读过 N 多源码库,也是巧了,这些源码库 99% 都是 ts 写的。对,没怎么吃过猪肉,但是见过很多猪跑。TS OS:这不是巧合~

所以在切换低代码项目到 ts 的时候,遇到不会的地方,我很少去百度,也很少去翻文档或者文章,都是去各大源码库里溜达看看,比如我定义的 context 老是报错,于是我就去 antd 里找个组件源码看看我错哪儿了。

以前看源码的时候,我记得 mobx 和 form 的 class 里都有好多 private、protected,我一直不太明白 ts 里的具体用法。正好我也有个class,于是我就去查了查文档,一看,哦,原来和面向对象语言里的用法一样,巧了,我以前的 C# 还是很溜的,实习的时候用的 C#,毕业设计也是 C# 做的。虽然好几年不写都忘了,但是理论还是有印象的,编程语言的世界好小好巧~

前几天写 vue 有点累,今天不太想动脑子,于是我今天坐在这儿重写 mini2 react 的任务调度,打算明天晚上直播讲这个。

react 的任务调度模块是用 js 写的,少部分加了 flow ,所以我写成 ts 的时候,需要自己定义类型。今天感觉我忽然悟了,以前不太懂的用法,现在不自觉就写出来了~

总结

所以总结下来,学 ts,或者其它任何东西都是,看文档没错,但是不要沉迷文档,实践才是王道~

如果你也在学 ts ,可以试试这个方法,找个感兴趣又相对比较熟悉的源码库,然后手写个简版,最后会收获 ts 和这个源码库。

如果写 ts 的过程遇到了问题,不妨去各大源码库里溜达看看,组件相关的问题,在组件库里都能找到相同的用法,class 相关的问题,推荐 mobx 或者 formily。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bubucuo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档