【问题标题】:How to type an object whose keys are a subset of the keys of the another type如何键入一个对象,其键是另一种类型键的子集
【发布时间】:2023-01-16 22:10:31
【问题描述】:

我有这样的类型:

type Metadata = {
  name: string;
  size: number;
  date: string;
  language: string;
  formattedName: string;
  normalizedDate: string
};

现在我需要建立这个常量:

const main = {
  name: ["main", "master"],
  size: ["size"],
  date: ["date"],
  language: ["lang", "language"]
} as ??? // as Record<keyof Metadata, string[]>;

这是一个对象,其键是元数据类型键的子集,值是字符串数组。 如何输入 main 对象?我试了Partials(Metadata),但好像不对。 哪个是正确的方法?

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    您可以说此类型必须“满足”或至少可分配给另一种类型,而无需在 4.9+ 中使用新的 satisfies 关键字实际覆盖推断的类型信息:

    const main = {
      name: ["main", "master"],
      size: ["size"],
      date: ["date"],
      language: ["lang", "language"]
    } satisfies Partial<Record<keyof Metadata, string[]>>;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 2022-08-09
      • 2022-11-19
      • 2019-08-08
      • 2022-12-05
      • 2020-07-19
      • 2021-05-30
      • 1970-01-01
      相关资源
      最近更新 更多