Hämta nycklarna för förening av objekt i TypeScript


Finns det ett sätt att få alla nycklar av typen union av objekt { a: ...} | { b: ...}? En sak värd att nämna — denna typ genereras dynamiskt.

Tillbringade några timmar men utan någon tur...

Svar #1

Villkorliga typer följer distributiva lagen.

Något i den här stilen (eller åtminstone en början)

type Keys<T> = T extends {[key: string]: any} ? keyof T : never

type Test = Keys<{a: string} | {b: number} | {c: object}>

//type Test = "a" | "b" | "c"

Lekplats

Relaterade artiklar