0

我有一个 FooBar 类型,它包含具有不同道具的对象。我想从所有对象中获取密钥。我认为可以通过使用来获得,keyof FooBar[number];但它只返回公共键。

type FooBar = [
  {
    foo: "hello";
    bar: "goodbye";
  },
  {
    foo: "hi";
    bar: "goodbye";
    fizz: "buzz";
  }
];

type FooBarKeys = keyof FooBar[number];

// type FooBarKeys = "foo" | "bar"

如何获取所有对象的所有键?

4

1 回答 1

1
type Index<T> = {[k in keyof T]: k}  // ["0", "1"]
type Props<T> = {[k in keyof Index<T>]: keyof T[k]}  // ["foo"|"bar", "foo"|"bar"|"fizz"]
type Keys = Props<FooBar>[number];

操场

于 2021-10-04T05:58:22.587 回答