深入浅出TypeScript | 青训营笔记

65 阅读2分钟

TS的诞生

TS是JS的超集,用于解决大型项目的代码复杂性

TSJS
强类型,支持静态和动态类型动态弱类型
编译时纠错运行时发现错误
不允许改变变量数据类型变量可以被赋值为不同类型

TS特性

  • 类型安全
  • 支持最新的ES特性
  • 完善的工具链

基础类型

boolean number string

enum 枚举类型

any unknown void

  • unknow类型的值不能赋值给any和unknow之外的类型变量,任何类型的值都可以赋值给unknow类型
  • 无法确定变量的类型时可以使用any,允许赋值为任意类型
  • void表示没有任何类型,用于定义没有返回值的函数

never

[] 数组类型

tuple 元组类型

TS函数类型 定义函数类型时需要定义输入参数类型和输出类型

  • 输入参数支持可选参数和默认参数
  • 输出参数可以自动推断,没有返回值时默认为void类型 函数重载:名称相同但参数不同,可以通过重载支持多种类型

interface 接口类型

  • 可选属性: ?
  • 只读属性: readonly
  • 支持自定义属性
  • 可以描述函数类型

  • 修饰符:public private私有属性 protected仅支持在继承类调用,不支持在实例调用
  • 抽象类 只能被继承,不能被实例化
  • interface 约束类,使用implements关键字

TS进阶

联合类型 |

交叉类型 &

类型断言 as

泛型&类型别名

这一部分有点难,没有听懂,先挖个坑,后面学完了再来填坑把......

总结

TS一直接触比较少,但是目前很多招聘都需要掌握TS,本节课算是简单入个门,短短30min也很难把ts完全覆盖并深入每一个细节中,很多内容听起来也是云里雾里的,看来还是缺少相关实战经验,不过在掘金小册中发现了一个不错的资源,希望能够更深入的学习!