TypeScript 複数の型のプロパティの型を取得する

以下の二つの型があります。

type Hoge = {
    hoge: string
}

type Foo = {
    foo: number
}

この二つの型のプロパティ名のUnionを取得したいとします。

"hoge" | "foo"

以下のように二つの型を結合して keyof を使用します。

type HogeFoo = keyof(Hoge & Foo)