泛型约束

extends进行泛型约束

  1. interface IWithLength {
  2. length: number
  3. }
  4. function echoWithArr<T extends IWithLength>(arg: T): T {
  5. console.log(arg.length) // 将来传入的参数中,不一定有length。于是需要 extends 进行约束:传入的之中,必须有 length 属性
  6. return arg;
  7. }

条件类型关键字

  1. type NonType<T> = T extends null | undefined ? never : T

这里T extends null | undefined的意思是假设T 是null或者undefinedNonType的值就是nerver,否则就是T
image.png