摘要:
React可大致分为三部分:Core、Reconciler和Renderer,在阅读源码之前,首先需要搭建测试环境,为了方便起见,本文直接采用了网友搭建好的环境,React版本是16.8.6,与最新版本很接近。 一、目录结构 React采用了由Lerna维护monorepo方式进行代码管理,即用一个 阅读全文
摘要:
最近观看了《前端跳槽面试必备技巧》,视频出举出了很多实用技巧,特在此记录。 视频开头给出了面试的定义:面试是测查和评价人员能力素质的一种考试活动。具体地说,面试是一种经过组织者精心设计,在特定场景下,以考官对考生的面对面交谈与观察为主要手段,由表及里测评考生的知识、能力、经验等有关素质的一种考试活动 阅读全文
摘要:
最近阅读了多篇从面试官的角度看面试的文章,全部记录在了Github上,看完后就想结合自己的经历总结一下,如有不当之处,欢迎留言讨论。本文将分为五部分:简历、自我介绍、问答、提问和2019年求职分析。 一、简历 简历是一种为了让招聘方能了解自己的载体,传递的信息包括个人的优势、亮点和价值等,其存在地目 阅读全文
摘要:
装饰器(Decorator)可声明在类及其成员(例如属性、方法等)之上,为它们提供一种标注,用于分离复杂逻辑或附加额外逻辑,其语法形式为@expression。expression是一个会在运行时被调用的函数,它的参数是被装饰的声明信息。假设有一个@sealed装饰器,那么可以像下面这样定义seal 阅读全文
摘要:
TypeScript中的命名空间可将那些具有内在联系的接口、类或对象等代码组织在一起,既能隔离作用域,也能避免命名冲突,并且使得代码结构清晰,更易追踪。在命名空间内部,所有实体部分默认都是私有的,需要由export关键字导出之后,才能在外部访问,如下所示。 TypeScript会将上面的命名空间编译 阅读全文
摘要:
本节将对TypeScript中类型的高级特性做详细讲解,包括交叉类型、类型别名、类型保护等。 一、交叉类型 交叉类型(Intersection Type)是将多个类型通过“&”符号合并成一个新类型,新类型将包含所有类型的特性。例如有Person和Programmer两个类(如下代码所示),当man变 阅读全文
摘要:
TypeScript是一种基于结构类型的语言,可根据其成员来描述类型。以结构相同的Person接口和Programmer类为例,如下所示。 由于结构类型的关系,因此当变量声明为Person类型时,可通过Programmer类实例化。由此可知,结构类型只关注类型的组成结构,而名称并不重要。 一、函数 阅读全文
摘要:
泛型是程序设计语言中的一种风格或范式,相当于类型模板,允许在声明类、接口或函数等成员时忽略类型,而在未来使用时再指定类型,其主要目的是为它们提供有意义的约束,提升代码的可重用性。 一、泛型参数 当一个函数需要能处理多种类型的参数和返回值,并且还得约束它们之间的关系(例如类型要相同)时,就可以采用泛型 阅读全文
摘要:
类是对对象的抽象,描述了对象的特征和行为,而对象就是类的实例。ES6引入了类的概念(相关内容可参考ES类和ES6类的继承两节),TypeScript在此基础上,不仅根据ES7等规范完善了类的语法,还添加了许多其它语法。而在使用TypeScript的类时,不必关心兼容性问题,因为这些工作已由编译器完成 阅读全文
摘要:
在传统的面向对象语言中,接口(Interface)好比协议,它会列出一系列的规则(即对行为进行抽象),再由类来实现这些规则。而TypeScript中的接口更加灵活,除了包含常规的作用之外,它还能扩展其它的类、为对象的类型命名以及约束值的结构等,大大消除了许多潜在的错误。 一、属性 TypeScrip 阅读全文