1、定义一个对象的属性 type obj = Record<string, any> (定义一个属性类型为string,值得类型为any的对象) 等价于 type obj = { [param: string]: any }
2、T extends 数据类型,T必须有且至少拥有该数据类型的所有属性;
3、函数签名:也叫方法签名,定义了函数或方法的输出与输入;
4、函数重载:为同一个函数提供多个函数类型定义来进行函数重载,目的是重载的pickCard函数在调用的时候会进行类型检查,写出所有参数类型和函数返回值对应的类型;
5、数组深拷贝的三种简便方式:
let newArr = [...oldArr];
let newArr = oldArr.slice(0);
let newArr = oldArr.concat();
6、for in循环用于遍历对象的属性,可用于深拷贝对象;
function clone(obj) {
let temp = {}
for (let key in obj) {
if (typeof obj[key] == 'object') {
temp[key] = clone(obj[key])
} else {
temp[key] = obj[key]
}
}
return temp;
}