01 - TS 导读:类型的重要性

导读:类型的重要性

欢迎来到《Typescript必会技能》,课程名字比较低调,但是干货满满。

类型是什么?

1. 人类的思考方式
2. 错误检查的利器

类型是人类的思考方式

类型本质是思考什么是什么?
![image-20210711180611083]
狗可以叫怎么理解?
【面向对象】
对象狗拥有bark方法
【函数式】
Dog is Barkable\<T\>
划重点:**类型的思维方式在函数式和面向对象是高度统一的。**

类型的思考是怎样的思考?

1. 分类思维:什么【】是【】?
   - Integer/String is Comparable
   - Array is Enumerable
   - React.ComponentType is not React.ComponentClass

     type ComponentType<P = {}> = ComponentClass<P> | FunctionComponent<P>

2. 映射
   - 可以转换:ComponentClass -> Component
   - 因此:Array\<ComponentClass\> -> Array\<Component\>

     [...something].map(...)

3. 演化
   - 开始时:React组件是ComponentClass ,现在是ElementType,因为ElementType不仅仅有ComponentClass
   - 开始时:Skedo渲染的基本单位是Node,后来是Node | LinkedNode, 再后来是NodeType

划重点:通过类型的演进不断让系统进化。这个是领域驱动开发最核心的理念。

类型是检查的利器

每次类型检查都可以帮助减少错误。

帮助减少程序的错误

function run(cmd : Cmd){
    
}
// 报错
run('ls /')

某同学:就这?

思考一个模型:每次函数调用检查一次类型,每次检查有10%的几率找到bug,那么10次函数调用是?
p = 1- (1 - 0.1) ^ 10 = 65.13%
系统中那么多函数调用,如果每个函数都有类型?

划重点:设计的好的类型系统可以做到编译时检查通过既上线。用Typescript的通用目标。

总结

- 类型是人的思考方式,类型帮助人思考(好的程序设计帮助人更好的思考)
- 类型帮助检查错误(减少90%以上的运行时Bug,编写完即上线)
- 类型帮助系统演进
以上3点就是我们用Typescript最核心的原因。

posted on   完美前端  阅读(56)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示