TS 泛型的extends属性

T extends object 是泛型约束的一种表现。

泛型约束简单点来说就是把泛型的具体化数据类型范围缩小

理解 T extends object:
extends表示具体的泛型类型只能是 object 类型, 某个变量如果能断言成 object类型[变量 as object ] , 那么这个变量的类型符合 T extends object
就是说该变量的类型可以是T的具体化类型

TS 泛型的extends属性_第1张图片
TS 泛型的extends属性_第2张图片

限制了泛型的类型,我们传了 number 就会报错
TS 泛型的extends属性_第3张图片

tip: 我们使用了 T extends object,传什么具体的泛型不会报错呢?
我们传的具体的泛型 能断言成 extends 后面的类型
也就是我们的具体的泛型 可以是 extends 后面的类型, 或者是extends 后面的类型的子集

class Container<T extends object>{
   t!: T
   show(): T {
      console.log(this.t);
      return this.t
   }
}
let c = new Container<{}>()
let c = new Container<object>()

你可能感兴趣的:(学习过程,typescript,javascript,前端)