@pleisto/active-support
    Preparing search index...

    Function isMatching

    • isMatching takes pattern and returns a type guard function, cheching if a value matches this pattern.

      Read documentation for isMatching on GitHub

      Type Parameters

      • const p extends UnknownPattern

      Parameters

      • pattern: p

      Returns (value: unknown) => value is InvertPattern<NoInfer<p>, unknown>

      const hasName = isMatching({ name: P.string })

      declare let input: unknown

      if (hasName(input)) {
      // `input` inferred as { name: string }
      return input.name
      }
    • isMatching takes pattern and a value and checks if the value matches this pattern.

      Read documentation for isMatching on GitHub

      Type Parameters

      • const T
      • const P extends
            | undefined
            | null
            | string
            | number
            | bigint
            | boolean
            | symbol
            | readonly []
            | readonly [unknown, unknown]
            | readonly [unknown, unknown]
            | UnknownProperties
            | UnknownMatcher
            | PatternMatcher<T<T>>
            | string & readonly any[]
            | number & readonly any[]
            | bigint & readonly any[]
            | false & readonly any[]
            | true & readonly any[]
            | symbol & readonly any[]
            | {
                readonly [k in string | number | symbol]?: Pattern.Pattern<
                    Readonly<
                        MergeUnion<
                            Exclude<
                                T<T>,
                                readonly any[] | Primitives | Map<any, any> | Set<any>,
                            >,
                        >,
                    >[k],
                >
            }
            | readonly UnknownPattern[]
            | readonly [UnknownPattern, UnknownPattern]
            | readonly [UnknownPattern, UnknownPattern]
            | PatternMatcher<T>
            | {
                readonly [k in string | number | symbol]?: Pattern.Pattern<
                    Readonly<
                        MergeUnion<
                            Exclude<T, readonly any[] | Primitives | Map<any, any> | Set<any>>,
                        >,
                    >[k],
                >
            }

      Parameters

      • pattern: P
      • value: T

      Returns value is InvertPattern<NoInfer<P>, unknown>

      declare let input: unknown

      if (isMatching({ name: P.string }, input)) {
      // `input` inferred as { name: string }
      return input.name
      }