精华 我写的第一本书《TypeScript 入门教程》
发布于 7 年前 作者 xcatliu 21858 次浏览 来自 分享

阅读原文


持续了大半年的学习和写作,在今天终于告一段落了。

写书之旅

最初有写书的想法,是刚加入微软的时候。

由于工作中需要重度使用 TypeScript,所以我花了几天的时间研读了好几遍官方手册和中文翻译版。

对于一个把 OOP 早就还给老师的人,有些概念并不是很好理解,再加上官方手册跳跃般的学习曲线,我觉得我可以抓住这次学习的机会,把整个学习的过程总结下来。

一开始,取名为《From JavaScript to TypeScript》,寓意此书的作者并不是 TypeScript 的专家,而是一个新手。

其实这不一定是个劣势,因为有些坑,只有新手才能理解。我希望尽可能的还原第一次学习的场景,帮助大家更容易的理解 TypeScript。

于是,我开始了我的写书之旅。

写书不易

要说写书的感受,那真是太不容易了。

理解一个知识,和能够讲出来让别人理解完全是两码事。

而我又是一个强迫症患者。

  • 为了方便查阅,添加了非常多引用
  • 为了一个措辞,会修订很多次
  • 为了能循序渐进的理解,调整了多次顺序

最难的还是在于坚持,一开始还会觉得挺有意思挺新鲜,慢慢的就会很枯燥乏味,无数次的回头重读之前写的,无数次的修改。

我收获的不只是对 TypeScript 理解的加深,而更是一份坚持的毅力和勇气吧。

再之后捧起别人写的书,都会油然而生一股敬意。

想必那一定也是比我付出更多百倍的精力才能写出来的了。

《TypeScript 入门教程》介绍

从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript。

原名《From JavaScript to TypeScript》

更多介绍请进入 GitHub 查看。

39 回复

碉堡的90后

跪谢…… 过年好好学习下 ^_^

不错,强无敌!

。。。。 前几天花了半个月同样写了一个 TS 的。最近又写了一本 ts 创建 H5 小游戏的。

我是从后端的角度来写的。我就纳闷了,上次我发为啥没给我加精。

https://nodelover.me/#/tutorial/前端

@zhangtao0x @slclub @hezhongfeng @WindTrace @cnwhy @lumeng689 @rwing @SilenceDN @DavidCai1993 @sumaolin @highsea @wangziling @flamingtop @minishine @44886 感谢大家的支持!

@MiYogurt 你好。 首先,为你坚持免费分享自己的知识点赞。索取很容易,但是花时间和精力去付出却很难。社区需要更多想你这样愿意付出的人。 其次,我认为你在这里吐槽没有给你加精,还有你在这个帖子中为自己的作品申精也是正确的事儿,自己觉得自己的作品优秀,当然可以申精,让更多的人看到。 至于为什么没有被加精,那就是管理员 @alsotang @i5ting 等的判断了。我没有找到社区加精的说明,我建议管理员有空可以在关于里面说明下什么样的文章会加精。可以让大家看到一个公正的态度。

我其实之前在你发的帖子里面也表示了支持。今天也略读了一下你写的书。就是论事,给你写的书一些建议:

1. 建议使用一些更正式的语气

于是微软公司的员工就想,能不能我也搞一个像coffeescript这样的,把自己的语言文件编译成js再运行呢?所以微软为了维护宇宙的正义与和平,创造出了typescript语言。

读作,当我们访问需要传递一个 numberxy 参数的匿名函数时候,会流出一个一个 number 的返回值。 哎,我邪恶了,想到了不好的东西。流鼻涕好邪恶。

这样的说明不适合出现在一本书中。通俗易懂的比喻可以有,但是技术书的读者不需要这种幽默的语气缓解阅读的乏味。

这样的例子在你的书中太多了,就不一一举例了。

2. 拆分成小章节

在线阅读和纸质书不同,纸质书每一页的内容都是有限的,读者翻页的时候可以有短暂的休息。而在线阅读只能不停的往下滑,很容易就疲倦了。建议多拆分,让书有更多段落感。


我没有很详细的阅读,如果错误还请指出。 我也是第一次写书,肯定也有很多问题。欢迎互相挑刺儿,共同进步。


另外,看到你在这个贴子提到了 TypeScript中文网 交流 QQ 群:322878640,不知道你是不是管理员,想反馈个问题: 我写书的时候也参考过 TypeScript 中文网,本来在 README.md 中引用了的,后来删除了。因为我发现它的文档里面的内容和 https://github.com/zhongsp/TypeScript 几乎一模一样,但是没有写明出处。不知道是得到原作者的同意还是其他情况?

网络写文章确实要多分页;有利于吸引人的注意力;

@slclub 还可以增加 pv 😁

@xcatliu 哈哈,利益最大化

其实最重要的,是合理的段落,分页。效果确实好。

大概浏览了下,就事论事,我觉得称之为《XX学习笔记》或者《官方教程精简版》更合适。 不可否认其对于未接触过TS的初学者有帮助其较官方教程更快速上手的正面推动作用,但是通篇实际上并没有多少作者本人自身的理解和对TS的解读,而是对官方文档内容的重新整编,行为上与于正一类的影视改编作者无异。 up主对于知识分享的态度是值得肯定的,但是行为上我觉得并不值得推崇。 一家之言,不喜可删……

@AserSayHi 感谢批评建议。

我已按照你的建议,把 README.md 中改成了:

本书是作者在学习 TypeScript 后整理的学习笔记。

你说的大部分我都认同,实际上我在 README.md 中基本上已经说明了:

原名《From JavaScript to TypeScript》,寓意此书的作者并不是 TypeScript 的专家,而是一个新手。希望分享学习的过程,帮助大家更容易的理解 TypeScript。

以及这本书的意义:

TypeScript 虽然有官方手册及其非官方中文版,但是它每一章都希望能详尽的描述一个概念,导致前面的章节就会包含很多后面才会学习到的内容,而有些本该一开始就了解的基础知识却在后面才会涉及。如果是初学者,可能需要阅读多次才能理解。所以它更适合用来查阅,而不是学习。

与官方手册不同,本书着重于从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript,希望能给大家一些帮助和启示。

适合人群里面已经说明了是给初学者看的,避免浪费 TypeScript 专家的时间。

另外,我也说明了与官方手册有很多重复的地方。

有一部分章节确实与官方的差不多,因为我觉得官方的已经写的很好了,也没有必要特地去改一改。本来是想只贴链接的,但是为了方便读者不在不同的书之间跳来跳去,所以还是有正文了。

我在每一章都链接了官方手册和中文版,方便直接去看。

由于一些知识点与官方手册重合度很高,本书会在相应章节推荐直接阅读中文手册。

有一些我自认为使用场景较少的知识,没有写下来。为了避免阅读完这本书后,还有些知识点没涉及到,最后章节也留了很多扩展阅读


我个人在学习的过程中,确实是来回读了好几遍官方手册才理解了一些知识点。

综上所述,我觉得这本书应该还是有它的价值。

@xcatliu 其一,我看淡了,他加不加精对于我来说,没什么,并不能因为他加精我就多了一分钱,也不会因为他不加精,我就活不下去了。

其二,说我的写的没内涵,我无话可说,官方的文档我阅读了不少次,因为其中有不少陷阱,甚至有的给出的例子是反面教材来警示读者的,但是没有明确的指明。基本上我把官网所给的例子都描述了一次,且所有例子我都自己手打验证,出来的结果我也截图上去,以及思考这样的例子是否对读者有帮助,读者怎样通过自然语言去理解逻辑。以及我还把编译成 JS 后的代码逻辑也叙述了一下。

其三,每个人有每个人的想法与做法,所以造就个人的不同,或许你眼中的技术人不需要这种幽默。在我看来,太需要了,因为有的时候我觉得自己沉默着,走在大街上目光涣散,不知道自己该干些什么,除非朋友来了,招呼一下,笑脸相迎,其他时间基本就是眉头紧锁的对着电脑,不想跟任何人多说一句话。快大学毕业了,4年了,至今我认为我是最独特的艺术家,你们写的是知识,我写的是情感,更是刚满21岁的我对于程序、人生的理解。其实 i5 刚开始对于我的写的深度表示质疑的时候,我是非常气愤的,没人知道我为了学习更多的知识付出了多少。后来自我安慰了一下就释怀了,做为跟随罗大伦博士学习《道德经》的我心性怎能如此低劣,就算我菜,那又怎样,比我菜的多了去了,何况我是一个假程序员,我是一个真艺术家。说我自我陶醉也罢,不可一世也罢,反正我这样,这是我的道。

其四,我写这些并不是为了出版,有人找过我,叫我跟他写一个前端框架什么系列的书,我拒绝了。我只是在做《高效能人生的七个习惯》《你的知识需要管理》里面所叙述的一些事情而已,同时也是我对未来的理解。

其五,章节乱,我认,因为我自己也写的头晕,因为需要思考的太多了,而且有的时候 TS 报个 Bug 去调试,些许也需要调很久。所以我才能明白古诗需要千锤百炼。其实最后也是草草结尾的,当然我也明白这是对于读者的不负责。需要写好一本书需要一定时间的历练,这段旅途才刚开始。

其六,TypeScript 中文网的管理员确实我侃大山换来的,本来进去问一些问题的,结果热心帮其他人解决了一些 Webpack TS 等的问题,恰逢各位大佬谈论语言,恰好我了解的语言也有那么多,只是稍微提了一下 Elm,Dart,结果头顶一闪,变成了管理员。我英语不太好,在 Github 上基本上我从来不提交 PR ,所以并没有参与翻译工作,只是在群里面解决一些问题而已。

其七,首先衷心的谢谢您给的建议,有不足才有进步,但是我只会采纳我认为我不足的地方。不过有一点值得考虑的是,下次写之前,要思考书籍的定位,写给什么样的读者看,说服自己为什么要幽默,读者真的需要幽默吗亦或者自己更倾向于哪个方面。

好吧,我就是个假程序员,以后可能会成为一个产品经理、或者 DevOps 吧,来年再说,哈哈。 新年快到了,我这个假程序员在这里祝大家万事如意。

@slclub 点赞 <br><br>来自<a href=“https://lzxb.github.io/react-cnode/” target="_blank">react-cnode手机版</a>

赞 <br><br>来自<a href=“https://lzxb.github.io/react-cnode/” target="_blank">react-cnode手机版</a>

先不说别的,冲你这种分享精神点个赞👍 自豪地采用 CNodeJS ionic

辛苦了 打赏账号可以贴在github

来自酷炫的 CNodeMD

@MiYogurt 对着这个 <div data-v-195d6675="" class=“hair”></div> 我摸屏幕摸了好久…= =!

@MiYogurt 赞。PS,好像是《高效能人士的七个习惯》

搞得我都想撸ts了,哈哈

source vue-cnode mobile 2.0

准备撸TS,搜到这个,哈哈,先谢谢啦,开工!

赞一个,为各位大佬辛勤工作、分享精神点赞~

为楼主的分享精神点赞!

来自酷炫的 CNodeMD

回到顶部