Skip to content

看了一些关于ts类型体操的文章,本文记录学习的一些收获,为之后遗忘的时候重新温习;

关于ts类型体操的一些好的文章:

类型体操

ts的类型系统是非常强大的,它不仅仅可以为我们标注类型,本身还支持类型编程,通过ts的type来创建新的type。

类似于高阶函数的概念,用函数去创建函数,ts类型系统支持用类型去做一些运算。

ts支持的type operators包括:

  • 泛型
  • keyof操作符,
  • typeof操作符
  • 条件运算,比如通过extends结合三元运算符,实现条件运算。T extends P?true : false
  • 映射运算,从一个存在的类型中创建一个新的类型。
  • 模版运算,通过模版运算符改变

TODO:类型编程有什么作用哪?举几个例子:

几点收获

  • ts支持类型空间和值空间,我们编写的代码的类型相关的代码只存在于类型空间,编译为js 代码就不存在了。
  • ts类型系统与java等类型是不一样的,java中类型是强绑定的,而ts类型是与结构相关的,表述不好,看下边这段代码就理解了:
typescript
interface dog{
  walk:void
}
interface pig{
	walk:void
}
function test(animal:dog){
  animal.walk()
}
const s
test()