React的官方教程中就使用了Tic Tac Toe(井字棋)这款游戏作为实战教程引导大家使用React,我自己复现并针对官网教程总结部分的更多要求部分进行了复现,最终得到了完整的Tic Tac Toe游戏。玩过之后怅然若失,也很想要找一些自己感兴趣的项目来磨刀。想到小时候常玩的五子棋游戏,忍不住手痒,很想要自己复现一个,仔细一想了Tic Tac Toe游戏本质上就是五子棋的简化版,为了做出一些小改变来增加趣味性,因此决定来做一个伸缩自如的Tic Tac Toe Extended游戏。
红山动物园一日游随想
听说红山动物园引入了考拉,开心地梦回了这个童年约定之所,结果冈瓦纳动物区的动物都没开,不过也算有所收获。
Toy-React基础版
这个Toy-React 是我选择在入职前的练手项目,比较基础,后续亟待完善(主要想用上Typescript)。主要目的是希望它可以作为一把开启React源码大门的钥匙。进一步学习React的原理知识,更加深刻理解React。
西湖赏雪——失败学随想
自从学习了bobo
的失败学之后,我深受启发,今日赏雪之时,经历了鹅毛大雪纷飞的snowstorm,又目睹积雪融化,联想到失败学,发生了brainstorm,若有所思,故写下此文,记录此刻我对自己的回忆和对失败学的理解。
Learn Git Branching个人答案
Git是目前世界上最先进的分布式版本控制系统,链接:https://learngitbranching.js.org是一个有趣的学习Git的教程,在沙盒里执行相应的Git命令,还能看到每个Git命令的执行情况,像玩有些一样通过一系列的关卡,还有远程操作的练习,十分实用。
TypeScript 中的协变与逆变
看Minifish源码中看到的疑惑,组里大佬给我看了一遍,觉得还是有点云里雾里,必须结合例子重新看。
对类型兼容性来说,变体是一个利于理解和重要的概念。
对一个简单类型 Base 和 Child 来说,如果 Child 是 Base 的子类,Child 的实例能被赋值给 Base 类型的变量。
在由 Base 和 Child 组合的复杂类型的类型兼容性中,它取决于相同场景下的 Base 与 Child 的变体:
- 协变(Covariant):只在同一个方向;
- 逆变(Contravariant):只在相反的方向;
- 双向协变(Bivariant):包括同一个方向和不同方向;(这个)
- 不变(Invariant):如果类型不完全相同,则它们是不兼容的。
参考:协变与逆变。
TypeScript实用类型
TypeScript 中类型 any,void,unknown,never之间的区别
如何自己实现一个简单的tree shaking
tree shaking 简单理解就是在代码打包时将项目代码中没有用到的代码剔除掉,比如在一个文件中申明了一个工具函数,但是并没有调用它,把这样的代码剔除掉,以减少代码打包体积。