Typescript 类型脚本我想要一个类型,它是一个对象属性中所有类型的并集

Typescript 类型脚本我想要一个类型,它是一个对象属性中所有类型的并集,typescript,typing,Typescript,Typing,我有这个东西 { "obj1" : type1; "obj2" : type2; "obj3" : type3; "obj4" : type4; "obj5" : type5; } 我想得到一个像下面这样的类型 type MyType = type1 | type2 | type3 | type4 | type5; 我认为这个问题的标题听起来不太好,如果

我有这个东西

{
    "obj1" : type1;
    "obj2" : type2;
    "obj3" : type3;
    "obj4" : type4;
    "obj5" : type5;
}
我想得到一个像下面这样的类型

type MyType = type1 | type2 | type3 | type4 | type5;
我认为这个问题的标题听起来不太好,如果您能为这个问题建议一个标题,我也将不胜感激。

您可以这样做:

interface A {
  obj1: number;
  obj2: string;
  obj3: boolean;
}

type MyType = A[keyof A];
如果
keyofA
提取密钥,则会得到
“obj1”|“obj2”|“obj3”

然后您可以使用它来索引您的记录类型
A[k]

请不要从javascript对象生成类型,这不是TypeScript的意图。首先手动定义类型,然后用它们创建和键入一些javascript对象。我的目的是反射类型,而不是生成它们,仍然是同样糟糕的反射。他说的是
对象
,而不是
接口
。他有
类型1
类型2
,后面是分号。这可能是一个interface@johannchopin。如果它是一个对象,可以替换为
typemytype=(typeof obj)[keyof typeof obj]