TypeScript 入门|青训营笔记Day 4

50 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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);
  });
}

今天这节课的内容,对于本小白来说,还是需要仔细研磨和消化的,对于三种高级类型,我还不是很明白,仍需要仔细看看老师发布的学习资料二。