Record
Record源码
他人博客:https://blog.csdn.net/weixin_38080573/article/details/92838045
// 将K中的每一个属性值都转化为T类型// extends 继承// keyof any类型中的key值集合// Record 源码type Record<K extends keyof any, T> = {[P in K] : T}// demotype PetsName = 'dog' | 'cat'; // PetsName可以是对象、联合、枚举等等类型interface PetInfo {name: string;age: number;}type PetsMap = Record<PetsName, PetInfo>; // 使用Record传化类型let PetsResult:PetsMap = {dog: { name: '张三', age: 1 },cat: { name: '李四', age: 10 }}
unknown
另类的全局顶级类型,类似于any,但是又区别any,unknown类型会更加严格
博客:https://blog.csdn.net/weixin_33716557/article/details/93177689
// 在any的情况下let anyValue: anylet value1:any = anyValue // Oklet value2:unknown = anyValue // Oklet value3:string = anyValue // Oklet value4:object = anyValue // Oklet value5: any[] = anyValue // Oklet value6: Function = anyValue // Ok// 在unknown的情况下let unknownValue:unknownlet value1:any = unknownValue // Oklet value2:unknown = unknownValue // Oklet value3:string = unknownValue // Errorlet value4:object = anyValue // Rrrorlet value5: any[] = anyValue // Errorlet value6: Function = anyValue // Error
