泛型约束
用extends
进行泛型约束
interface IWithLength {
length: number
}
function echoWithArr<T extends IWithLength>(arg: T): T {
console.log(arg.length) // 将来传入的参数中,不一定有length。于是需要 extends 进行约束:传入的之中,必须有 length 属性
return arg;
}
条件类型关键字
type NonType<T> = T extends null | undefined ? never : T
这里T extends null | undefined
的意思是假设T 是null
或者undefined
,NonType
的值就是nerver
,否则就是T