深入浅出 TypeScript
课程从TS基础入手,由基础类型一步步延伸到高级类型,通过示例来深入浅出的了解TypeScript。
一,TS背景,优缺点,社区活跃度
为什么要学TS:
TS在社区一些维度是明显上升的趋势,而且越来越多的人在进行TS的使用,一些现代的工程也在TS的应用会比较广泛。
对比TS和JS:
总的来说,TS是JS的超级,同时TS也能变成JS运行,TS可以在编译环节发现问题,支持静态代码检测,支持后端语言中一些相关特性。
第一点,它带来的是类型安全。
第二点,TS还包含了一些编译器,具有下一代JS特性。
第三点,TS带来的类型可以从IDE上就容易去理解代码,来提高我们的一些这些开发效率。
TS不仅仅是一门语言,它更是一个生产力的工具。
二,常用类型
首先TS里面涉及到三个比较重要的类型,boolean,number和string。枚举类型属于TS特有的类型。unknown是any的一个替代类型,但是unknown只允许被复制。never是TS表示那些永远不存在在职的类型。数组项目类型可以根据一些技术类型,或者对象类型来增加一个数字标识,进行一个数组的定义。
函数类型是在定义函数时要定义输入的参数和输出类型。函数重载的概念,如果多次定义一个同样的函数类型的话,它会进行函数重载,会把这些类型进行一个拼接,然后列出各种情况。
接口是为了定义一个对象类型。接口还涉及到TS一个类型对比的概念:如果这个类型它在接口里面,它的这个类型结构都是相同的话,那它就认为是相同的类型,就可以完成这个编译的一个判断标准。
技术中还有一部分是类。TS支持ES6引入的类的关键词,在这个基础上补充了一些相关的语法,提高了效率和一些阅读性。TS增加了一些字段标识public private和protect这三个属性。还有一个抽象类的概念,定义是如果一个类是抽象类的话,那它只能被继承,不能被实例化。在TS的类中,井号标识是一个标识,外界是没法进行调用的。在类里,如果我们要使用interface去约束类的话,可以使用implements的这个关键字来去进行一个一个接口方面的一个定义,方便开发者来去快速判断某一个当前的这个类是否满足一个接口相关定义。
三,进阶用法
分别介绍联合类型,交叉类型,类型断言和类型别名。
接下来讲解TS使用场景:
随后用定义print函数的例子讲解。泛型要考虑到可重用性,不仅支持当前的这个数据类型,也要支持未来的一些数据类型。
泛型的语法是在这个监控号中去进行类型参数定义,一般用T来去标识泛型定义,然后它的作用就是一个临时占位的作用。使用时需要使用时有两种方法来去指定类型,一个是定义要使用的类型,另外一个方式就是通过TS的类型推导,可以自动推导出相关的类型。泛型的核心点是引入了一个临时站位的一个变量。
TS里面也提供了一些常用的一些这个工具类型。
四,实践案例
介绍声明文件里面罗列的几个比较常用的一些case
用以下一个具体实例和内部罗列的两个case进一步讲解
五,总结
第一个,说明了为什么要学TS,以及TS和JS的相关对比。
第二个,介绍了TS的基础,这里面介绍了基础类型和函数类型,然后介绍了interface,然后介绍了类。
第三个,介绍了泛型,以及这个发行中常见的一些工具类型及其应用。
第四个,介绍了我们在这个项目搭建中需要去涉及到的一些相关的声明文件,TS conflict的一些相关的配置。
总体上,TypeScript是一种静态类型的编程语言,是一个强大且灵活的编程语言,,它可以看作是JavaScript的超集,在其基础上添加了静态类型检查和一些新的特性。TS可以在编译时捕获很多常见的错误,有助于提前发现和修复潜在的错误,减少运行时错误和调试时间,提供了更好的类型安全性;同时代码具有更好的可读性和可维护性,方便团队成员代码交流,多人协作更容易。
但对于熟悉JavaScript的开发者来说,上手TypeScript可能需要一定的时间成本,特别是对于静态类型的概念和语法的理解。但一旦熟悉了TypeScript的基本用法,可以享受到它带来的好处。并且由于需要进行静态类型检查和编译过程,TypeScript的编译时间相对于JavaScript会稍长。
TS的优点突出,已经被广泛应用于大型项目和团队中,但同样在学习和使用中存在局限与成本问题,需要使用者综合项目需求与个人能力考虑来进行TS或JS的选择。