联合类型的部分键作为typescript中对象的键

xeufq47z  于 2022-11-18  发布在  TypeScript
关注(0)|答案(2)|浏览(180)

我想使用联合类型的键作为typescript中对象的键。

type EnumType = 'a1' | 'a2'

const object:{[key in EnumType]: string}= {
 a1: 'test'
}

在这种情况下,我甚至必须在对象中添加a2作为键。有没有办法使它成为可选的?
Playground

r7s23pms

r7s23pms1#

请使用Utility Types

type EnumType = "a1" | "a2";

const object: Partial<Record<EnumType, string>> = {
  a1: "test",
};
xt0899hw

xt0899hw2#

只要加上这样一个问号:

type EnumType = 'a1' | 'a2'

const object:{[key in EnumType]?: string}= {
 a1: 'test'
}

object定义与您当前的代码:

const object: {
    a1: string;
    a2: string;
}

变成:

const object: {
    a1?: string | undefined;
    a2?: string | undefined;
}

允许每个键都是可选的。

相关问题