TypeScript 入门|前端青训营

76 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第9天。本节课的主题是【TypeScript 入门】,授课老师为林皇。

本篇笔记分别对课程中所讲的几个要点进行一些解读,如若有误,欢迎大家在评论区交流,指出不当之处。

1. 为什么用TypeScript?

  • 从TS发展历史看-前端主流框架(Angular React Vue)均已支持

  • JS VS TS

    • JS:动态类型(执行阶段才做类型检验/匹配)/弱类型语言(类型自动转换)
    • TS:静态类型(如Java,Py等,与动态区别在于编译发生是否在执行时)/弱类型语言
  • TS:

    静态类型:

    • 可读性增强:语法解析,自动生成TSDOC。ide增强
    • 可维护性强,编译阶段发现错误 ⇒ 多人合作项目中获得更好的稳定性和开发效率

    JS的超集:

    • 包含于兼容所有JS特性,支持共存
    • 支持渐进式引入改造与升级
  • 编译器推荐

2. 基本语法

数据类型

const q:string = 'string';
const w:number = 1;
const e:boolean = true;

对象类型

需要自定义,大写字母开头为类型

关键字:interface

image.png

函数类型

给参数和返回函数补充类型声明

image.png

函数重载

通过Interface关键字声明,形式比较简单可读

image.png

数组类型

补充类型

泛型

使用时才确认类型

泛型约束-<T extends string>

泛型参数默认类型 ``

类型别名&类型断言

字符串/数字 字面量

3. 高级类型

通过基础类型做高级类型定义

常见:

联合/交叉类型:存在许多重复元素

联合类型 A|B

交叉类型 A&B

类型保护与类型守卫

访问联合类型时,出于程序安全,只能访问联合类型中的交集部分

解决方法:类型守卫

高级类型

函数返回值类型

image.png

工程应用

TS过程应用-Web

  • webpack
  • node