这是我参与「第五届青训营 」伴学笔记创作活动的第四天。
一、本堂课重点内容:
TypeScript 是 JavaScript 的语法超集,它添加了静态类型,近几年的发展中,也受到诸多开发者的喜爱。Typescript 的社区逐渐壮大,日趋完善,为越来越多前端开发者提供服务,本节课将主要为同学解读 TypeScript 的优势及其主要使用的工具。而后还带领大家认识 TypeScript 高级类型,提供常见的解决方案,帮助同学可以在日常的前端开发过程中,通过高级类型的方式,将普通类型的解决方案进行高级化。在课程最后,还将 以Web 场景为例,介绍 TypeScript 的工程应用。
二、详细知识点介绍:
1. TypeScript 定义解析
TypeScript源于JS的静态类型(先编译后执行)弱类型语言,JS为动态类型(执行阶段决定类型匹配)。
相对于JS的好处:
- 可读性强:基于语法解析TSDoc,IDE增强
- 可维护性增强:在编译阶段暴露大部分错误,多人合作时获得更好的稳定性和开发效率
- 作为JS的超集,包含于兼容的所有JS特性,支持共存
- 作为JS的超集,支持渐进式引入与升级。
2. 基本语法
-
基础数据类型
在变量的变量名后加
:,而后加上类型名称。 -
对象类型
?:表示特征属性,可有可无 -
函数类型
-
函数重载
-
数组类型
-
TypeScript补充类型
-
TypeScript泛型
- 使用时根据传入内容确定类型,不事先预设
- 使用时根据传入内容确定类型,不事先预设
-
类型别名与类型断言
-
字符串、数字、字面量
- 允许指定字符串、数字必须是固定值
- 允许指定字符串、数字必须是固定值
3. 高级类型
- 联合/交叉类型
- 联合类型:
IA | IB表示一个值可以是几个类型之一 - 交叉类型:
IA & IB多种类型叠加到一起成为一种类型,包含了所需的所有类型的特性
- 联合类型:
- 类型保护与类型守卫
- 函数返回值类型
4. 工程应用
Web
- 配置webapack loader相关配置
- 配置tsconfig.js文件
- 运行webapack启动、打包
- loader处理ts文件时,会进行编译和类型检查
使用TSC编译
- 安装Node与npm
- 配置tsconfig.js文件
- 使用npm安装tsc
- 使用tsc运行编译得到js文件
三、实践练习例子:
四、课后个人总结:
本课程中我学习了TypeScript的相关知识,了解了其与JavaScript的关系,知晓了TypeScript的基本语法、高级类型等相关知识,并通过其工程应用明确了如何使用TypeScript。
五、引用参考:
本篇文章代码均引用老师在掘金课堂中的示例。