/* eslint no-use-before-define: 0 */ // --> OFF // @ts-ignore type Join = K extends string | number ? P extends string | number ? `${K}${'' extends P ? '' : '.'}${P}` : never : never; export type Leaves = T extends object ? { [K in keyof T]-?: Join> }[keyof T] : '';