Utility type that removes properties with void values from an object type. This is used internally to conditionally require session metadata based on whether SessionMeta extends void.

type OmitVoid<T, KS extends keyof T = keyof T> = {
  [K in KS extends any ? (void extends T[KS] ? never : KS) : never]: T[K]
}

Example

type Example = { a: string; b: void; c: number }
type Result = OmitVoid<Example> // { a: string, c: number }
Prev
RemoteTLStoreWithStatus
Next
TLCustomMessageHandler