欢迎光临散文网 会员登陆 & 注册

typescript与类型系统

2023-06-15 11:38 作者:最后的刀语  | 我要投稿

1. 值是值,类型是类型;

2. 类型是一个集合,值是集合中的元素。如Boolean类型是True和False的集合。

3. 代数数据类型(ADT, Algebraic Data Types),提供了多个类型组合成新的类型的方式。

  这里有两种方式:和 和 积

  - Sum type: size(A | B) = size(A) + size(B)

  - Product type: size(A & B) = size(A) * size(B)

4. 子类型,包含关系。可以做类型替换。类型替换后的继承关系有逆变、协变、双变和不变。子类型可以继承。

5. 泛型是参数化多态,类型也可以作为函数的参数。如const f = <A>(a: A) > a;

6. 类型可以进行计算。类型算子,对应的系统叫高阶类型演算。

7. 类型体操的库:https://github.com/type-challenges/type-challenges,有很多题可以练习类型计算。

8. 类型计算可以做到更严格的类型约束,使程序更健壮。

typescript与类型系统的评论 (共 条)

分享到微博请遵守国家法律