day4
TypeScript入门 | 青训营笔记
这是我参与「第五届青训营 」笔记创作活动的第4天
一、本堂课重点内容:
- TypeScript 历史、定义解析、工程应用
- TypeScript 优势解读、练习工具
- 联合交叉类型
- 类型保护与类型守卫
- Merge 函数类型实现
- 函数返回值类型
二、详细知识点介绍:
1. 发展历史
2. TypeScript和JavaScript
都是弱类型语言
但是JavaScript是动态类型,而TypeScript是静态类型
TypeScript的优势:
可读性增强:基于语法解析TSDoc.ide增强
可维护性增强:在编译阶段暴露大部分错误
多人合作的大型项目中,获得更好的稳定性和开发效率
包含于兼容所以js特性,支持共存
支持渐进式引入与升级
编辑器:Visual Studio Code
3. 基本语法
1. 基础数据类型
1 | /*字符串*/ |
2. 对象类型
3. 函数类型
1 | function add(x: number,y: number): number { |
4. 函数重载
对getDate函数进行重载,timestamp为可缺省参数
不能将类型“(type: any, timestamp: any)=>string|Date”分配给类型“IGetDate”
不能将类型“string |Date”分配给类型“string”。
不能将类型“Date”分配给类型“string” ts(2322)
5. 数组类型
用[类型+方括号]表示,有三种表示方法:
泛型表示、元祖表示、接口表示
6. 补充类型
空类型:表示无赋值
任意类型,是所有类型的子类型
枚举类型:支持枚举值到枚举名的正、反向映射
泛型
7. 高级类型
联合/交叉型
联合类型IA | IB 联合类型表示一个值可以是几种类型之一
交叉类型A&B,多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性
8. 类型保护与类型守卫
9. 高级类型
10 函数返回值类型
4.工程应用
使用TSC编译
- 安装node与npm
- 配置tsconfig.js文件
- 使用npm安装tsc
- 使用tsc运行编译得到js文件
三、实践练习例子:
1 | /*报错:无法分配到"jobId",因为它是只读属性*/ |
1 | interface IHistoryBook { |
1 | interface ISourceObj { |
四、课后个人总结:
- TypeScript在某些方面、语法逻辑上与JavaScript相似,要注意区分
- TypeScript的语法逻辑以及代码的表示要能够认准
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Serendipity!