这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
本节课的知识要点:
1.TypeScript 发展历史及优势
2.JS、TS基本语法
3.高级类型
- 联合交叉类型
- 类型保护与类型守卫
- Merge 函数类型实现
- 函数返回值类型
4.TypeScript 工程应用
本节课的详细知识点:
- TypeScript发展史:
最早的第一个版本是在2012年10月发布的,在2021年11月发布了v4.5版本
- TypeScript 是 源于JavaScript
JavaScript是动态类型,而TypeScript添加了静态类型
- 静态类型:
在动态类型基础上,增强了可读性和可维护性,从而在多人合作的大型项目里,可以获得更好的稳定性以及开发效率
- TypeScript 是 JavaScript 的超集
包含于兼容所有JavaScript特性,支持共存、渐进式引入与升级
- JS、TS基本语法:
基础数据类型:(左JS,右TS;下图同理)
对象类型:
- 高级类型
(1)联合/交叉类型
type IBookList = Array<{
author: string;
} & ({
type: 'history';
range: string;
} | {
type: 'story';
theme: string;
})>
联合类型:IA | IB; 表示一个值可以是几种类型之一
交叉类型:IA & IB; 多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性
(2)类型保护与类型守卫
interface IA { a: 1, a1: 2 }
interface IB { b: 1, b1: 2 }
/⁕类型守卫:定义一个函数,它的返回值是一个类型谓词,生效范围为子作用域⁕/
function log2(arg: IA | IB): arg is IA {
return !!(arg as IA).a;
}
function log2(arg: IA | IB) {
if (getIsIA(arg)) {
console.log(arg.al)
} else {
console.log(arg.b1);
}
}
(3)函数返回值类型
function delayCall(func) {
return new Promise(resolve => {
setTimeout(() => {
const result = func();
resolve(result);
}, 1);
});
}
今天这节课的内容,对于本小白来说,还是需要仔细研磨和消化的,对于三种高级类型,我还不是很明白,仍需要仔细看看老师发布的学习资料二。