Skip to content

Latest commit

 

History

History
59 lines (34 loc) · 1.56 KB

总结.md

File metadata and controls

59 lines (34 loc) · 1.56 KB

总结

概念

TypeScript 是可选的、静态的类型系统

  • 为什么需要类型系统?

要构建大型的应用,会涉及大量的函数和接口,如果没有类型检查,会产生大量的调试成本。类型系统可以降低调试成本,从而降低开发成本

  • 可选的

TS 是 JS 的超集。JS的所有功能都能够在TS中使用,增加的部分是类型系统。

  • 静态的

TS代码 -> 编译 -> JS代码

如何约束类型

变量、参数、函数的返回值

  • 基本类型:boolean、number、string、object、Array、void、never、null和undefined

字面量类型 配合 联合类型使用,达到类似于枚举的效果

对象字面量可以更加细化的约束一个对象

let gender:"男"|"女";
type User = {
    name:string
    age:number
}
  • 扩展类型:类型别名、枚举、接口、类

类型别名、接口,不产生编译结果

枚举、类,产生编译结果,枚举->编译->对象,TS类->JS类

TS类:属性列表、修饰符(readonly、访问修饰符:public、private、protected)

泛型:解除某个功能和类型的耦合

类型断言:开发者非常清楚某个东西的类型,但是TS难以分辨,开发者可以通过类型断言,告诉TS这里的确切类型。

类型兼容性

鸭子辨型法,子结构辨型法

  • 基本类型:完全匹配
  • 对象类型:鸭子辨型法,字面量对象直接传递时,会有更严格的类型检查
  • 函数类型:参数数量可以少,但不可以多。要求返回必须返回,不要求返回,你随意