泛型约束
当我们使用泛型时非常方便,但是在使用的过程中也会遇到很多问题,如图:
这时候就会提示错误,因为返回的是相加的值,但是不是所有的类型都能相加的,例如来个undefined类型的 就不能进行相加了,这时候就可以使用泛型约束来空值泛型的类型的范围,如图:
这时候使用 extends 来约束了泛型的范围是数值型 这样就不会出现错误提示了 ,当然我们也可以接口类型来做泛型的约束范围,如下:
因为数值类型没有 length 所以提示错误 ,不仅可以使用接口类型,还可以使用对象,这时候就要用到 keyof 了,keyof 有什么用呢,看下图:
使用 keyof 将对象的 key 推断成联合类型,使用如下: