泛型约束
# 泛型约束
用来限制泛型的取值。
比如说,我们要限制泛型是一个对象中,并对对象中的某个属性进行处理
interface doSomthing {
name: string
}
/**
* 将名字每个字母大写。
* @param obj
*/
function doSomthing<T extends doSomthing>(obj: T): T {
obj.name = obj.name.toUpperCase();
return obj
}
const obj = {
name: 'tom jackson',
age: 18,
hot: true
}
console.log(doSomthing(obj));
# 多泛型
当存在一个泛型解决不了的问题时,那就用多个!
// 合并两个不同类型的数组
// [1,2,3,5] ['a','b','c','d']
function concatArr<T, K>(arr1: T[], arr2: K[]): (T | K)[] {
const neArr:(T|K)[] = [...arr1,...arr2];
return neArr;
}