Skip to main content

type Shape<SL>

Type defining the shape of allowed selectors, used to improve compiler checking.

Definition

type Shape<SL> = IsAnyFunc<SL> extends true ? SL : IsArray<SL> extends true ? readonly [...(SL extends readonly unknown[] ? SL : never)] : SL extends {
    readonly [key: string |number| symbol]: unknown;
  } ? {
    readonly [K in keyof SL]: Selector.Shape<SL[K]>;
  } : SL;