如何使用Record,如何删除Record的元素?

如题:如何使用Record,如何删除Record的元素?

阅读 1.4k
1 个回答

1、Record使用

构造一个对象类型,其属性键为 "Keys" ,其属性值为 "Type"。此实用程序可用于将一种类型的属性映射到另一种类型。

interface CatInfo {
  age: number;
  breed: string;
}

type CatName = string;

let cat1:CatInfo = { age: 10, breed: "Persian" };
let cat2:CatInfo = { age: 5, breed: "Maine Coon" };
let cat3:CatInfo = { age: 16, breed: "British Shorthair" };

let cats: Record<CatName, CatInfo> = {
  "miffy": cat1,
  "boris": cat2,
  "mordred": cat3,
};

2、如何删除Record中的元素

ets限制delete使用,可在ts文件中定义工具函数DeleteRecord并使用。

export class ObjectUtil {
  static DeleteRecord(source: Record<any,any>, key:any): Record<any,any> {
    delete source[key]
    return source
  }
}

3、如何使用变量作为Record的key

// 目前Record初始化时不支持使用变量名作为key,若要用变量名作为key值,标准写法即为record[temp] = '1234';

// 因为如果在Record中初始化使用变量名称作为key的话,无法获得key是变量的名称'temp'还是变量的值'123'.
let temp:string = '123';
let record:Record<string , string > = {
  temp:'123'
}

// 正确使用案例
let temp:string = 'bob';
cats[temp] = { age: 12, breed: "Persian" }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进