Type Utils
    Preparing search index...

    Function match

    • Create a new reusable pattern matcher object

      Type Parameters

      • T = never

      Returns {
          __exprs: [];
          __patterns: [];
          with<P, TExpr = ExtractPattern<P>>(
              pattern: P,
              expression?: Expr<TExpr, ExtractPattern<P>>,
          ): {
              __exprs: [TExpr];
              __patterns: [ExtractPattern<P>];
              with<P, TExpr = ExtractPattern<P>>(
                  pattern: P,
                  expression?: Expr<TExpr, ExtractPattern<P>>,
              ): {
                  __exprs: [TExpr, TExpr];
                  __patterns: [ExtractPattern<P>, ExtractPattern<P>];
                  with<P, TExpr = ExtractPattern<P>>(
                      pattern: P,
                      expression?: Expr<TExpr, ExtractPattern<P>>,
                  ): {
                      __exprs: [TExpr, TExpr, TExpr];
                      __patterns: [ExtractPattern<P>, ExtractPattern<P>, ExtractPattern<P>];
                      with<P, TExpr = ExtractPattern<P>>(
                          pattern: P,
                          expression?: Expr<TExpr, ExtractPattern<(...)>>,
                      ): {
                          __exprs: [(...), (...), (...), (...)];
                          __patterns: [(...), (...), (...), (...)];
                          with<P, TExpr = ExtractPattern<(...)>>(
                              pattern: P,
                              expression?: (...) | (...),
                          ): (...) & (...) & (...);
                      } & { default<TExpr>(expression: Expr<(...), (...)>): (...) & (...) } & (
                          ((...) extends (...) ? (...) : (...)) extends true
                              ? ExecMatchBuilder<(...), (...)>
                              : {}
                      );
                  } & {
                      default<TExpr>(
                          expression: Expr<
                              TExpr,
                              FilterUnion<FilterUnion<(...), (...)>, ExtractPattern<(...)>>,
                          >,
                      ): {
                          __exprs: [(...), (...), (...), (...)];
                          __patterns: [(...), (...), (...), (...)];
                          with<P extends any, TExpr = ExtractPattern<(...)>>(
                              pattern: P,
                              expression?: (...) | (...),
                          ): (...) & (...);
                      } & ExecMatchBuilder<
                          [(...), (...), (...), (...)],
                          [(...), (...), (...), (...)],
                      >;
                  } & (
                      (
                          [FilterUnion<(...), (...)>] extends [never]
                              ? true
                              : [(...)] extends [(...)] ? true : false
                      ) extends true
                          ? ExecMatchBuilder<
                              [TExpr, TExpr, TExpr],
                              [ExtractPattern<(...)>, ExtractPattern<(...)>, ExtractPattern<(...)>],
                          >
                          : {}
                  );
              } & {
                  default<TExpr>(
                      expression: Expr<
                          TExpr,
                          FilterUnion<FilterUnion<T, ExtractPattern<P>>, ExtractPattern<P>>,
                      >,
                  ): {
                      __exprs: [TExpr, TExpr, TExpr];
                      __patterns: [ExtractPattern<P>, ExtractPattern<P>, unknown];
                      with<P extends any, TExpr = ExtractPattern<P>>(
                          pattern: P,
                          expression?: Expr<TExpr, ExtractPattern<(...)>>,
                      ): {
                          __exprs: [(...), (...), (...), (...)];
                          __patterns: [(...), (...), (...), (...)];
                          with<P extends any, TExpr = ExtractPattern<(...)>>(
                              pattern: P,
                              expression?: (...) | (...),
                          ): (...) & (...);
                      } & ExecMatchBuilder<
                          [(...), (...), (...), (...)],
                          [(...), (...), (...), (...)],
                      >;
                  } & ExecMatchBuilder<
                      [TExpr, TExpr, TExpr],
                      [ExtractPattern<P>, ExtractPattern<P>, unknown],
                  >;
              } & (
                  (
                      [
                          FilterUnion<
                              FilterUnion<T, ExtractPattern<(...)>>,
                              ExtractPattern<P>,
                          >,
                      ] extends [never]
                          ? true
                          : [FilterUnion<FilterUnion<(...), (...)>, (...) | (...)>] extends [
                              never,
                          ]
                              ? true
                              : false
                  ) extends true
                      ? ExecMatchBuilder<
                          [TExpr, TExpr],
                          [ExtractPattern<P>, ExtractPattern<P>],
                      >
                      : {}
              );
          } & {
              default<TExpr>(
                  expression: Expr<TExpr, FilterUnion<T, ExtractPattern<P>>>,
              ): {
                  __exprs: [TExpr, TExpr];
                  __patterns: [ExtractPattern<P>, unknown];
                  with<P extends any, TExpr = ExtractPattern<P>>(
                      pattern: P,
                      expression?: Expr<TExpr, ExtractPattern<P>>,
                  ): {
                      __exprs: [TExpr, TExpr, TExpr];
                      __patterns: [ExtractPattern<P>, unknown, ExtractPattern<P>];
                      with<P extends any, TExpr = ExtractPattern<P>>(
                          pattern: P,
                          expression?: Expr<TExpr, ExtractPattern<(...)>>,
                      ): {
                          __exprs: [(...), (...), (...), (...)];
                          __patterns: [(...), (...), (...), (...)];
                          with<P extends any, TExpr = ExtractPattern<(...)>>(
                              pattern: P,
                              expression?: (...) | (...),
                          ): (...) & (...);
                      } & ExecMatchBuilder<
                          [(...), (...), (...), (...)],
                          [(...), (...), (...), (...)],
                      >;
                  } & ExecMatchBuilder<
                      [TExpr, TExpr, TExpr],
                      [ExtractPattern<P>, unknown, ExtractPattern<P>],
                  >;
              } & ExecMatchBuilder<[TExpr, TExpr], [ExtractPattern<P>, unknown]>;
          } & (
              (
                  [FilterUnion<T, ExtractPattern<P>>] extends [never]
                      ? true
                      : [FilterUnion<FilterUnion<T, ExtractPattern<P>>, ExtractPattern<P>>] extends [
                          never,
                      ]
                          ? true
                          : false
              ) extends true
                  ? ExecMatchBuilder<[TExpr], [ExtractPattern<P>]>
                  : {}
          );
      } & {
          default<TExpr>(
              expression: Expr<TExpr, T>,
          ): {
              __exprs: [TExpr];
              __patterns: [unknown];
              with<P extends any, TExpr = ExtractPattern<P>>(
                  pattern: P,
                  expression?: Expr<TExpr, ExtractPattern<P>>,
              ): {
                  __exprs: [TExpr, TExpr];
                  __patterns: [unknown, ExtractPattern<P>];
                  with<P extends any, TExpr = ExtractPattern<P>>(
                      pattern: P,
                      expression?: Expr<TExpr, ExtractPattern<P>>,
                  ): {
                      __exprs: [TExpr, TExpr, TExpr];
                      __patterns: [unknown, ExtractPattern<P>, ExtractPattern<P>];
                      with<P extends any, TExpr = ExtractPattern<P>>(
                          pattern: P,
                          expression?: Expr<TExpr, ExtractPattern<(...)>>,
                      ): {
                          __exprs: [(...), (...), (...), (...)];
                          __patterns: [(...), (...), (...), (...)];
                          with<P extends any, TExpr = ExtractPattern<(...)>>(
                              pattern: P,
                              expression?: (...) | (...),
                          ): (...) & (...);
                      } & ExecMatchBuilder<
                          [(...), (...), (...), (...)],
                          [(...), (...), (...), (...)],
                      >;
                  } & ExecMatchBuilder<
                      [TExpr, TExpr, TExpr],
                      [unknown, ExtractPattern<P>, ExtractPattern<P>],
                  >;
              } & ExecMatchBuilder<[TExpr, TExpr], [unknown, ExtractPattern<P>]>;
          } & ExecMatchBuilder<[TExpr], [unknown]>;
      } & (
          (
              [T] extends [never]
                  ? true
                  : [FilterUnion<T, never>] extends [never] ? true : false
          ) extends true
              ? ExecMatchBuilder<[], []>
              : {}
      )

      A new pattern matcher instance

    • Create an inline pattern matcher object for a given value

      Type Parameters

      • T

      Parameters

      • value: T

      Returns Match<T>

      A new pattern matcher instance

    Index

    Properties

    Properties

    NO_PARAM: typeof NO_PARAM