type OwnOf<T> = T extends any[] ? { [x: number]: T[number]; } : Omit<T, IgnoreOf>
Extracts own properties of an object, excluding well-known symbols and ignored keys
Extracts own properties of an object, excluding well-known symbols and ignored keys