ts-fortress
    Preparing search index...

    Function brand

    • Brands a primitive type.

      The constraint values the base type carries (see WithConstraints) are carried over to the branded type, so that t.brand({ baseType: t.number(0, { min: 0, max: 10 }), ... }).constraints still reads min and max. C is inferred from baseType.constraints; branding a base type that carries none adds no constraints property.

      Type Parameters

      • const A extends StrictExtract<Primitive, string | number | bigint | boolean>
      • const BrandTrueKeys extends readonly string[]
      • const BrandFalseKeys extends readonly string[] = readonly []
      • const C = unknown

      Parameters

      • __namedParameters: Readonly<
            {
                baseType: Type<A> & Partial<WithConstraints<C>>;
                brandFalseKeys?: BrandFalseKeys;
                brandKeys: BrandTrueKeys;
                defaultValue?: A;
                is?: (
                    a: A,
                ) => a is Brand<
                    A,
                    ArrayToUnion<BrandTrueKeys>,
                    ArrayToUnion<BrandFalseKeys>,
                >;
                typeName?: string;
            },
        >

      Returns Readonly<
          {
              assertIs: (
                  a: unknown,
              ) => asserts a is Brand<
                  A,
                  ArrayToUnion<BrandTrueKeys>,
                  ArrayToUnion<BrandFalseKeys>,
              >;
              cast: (a: unknown) => Brand;
              defaultValue: Brand;
              fill: (a: unknown) => Brand;
              is: (
                  a: unknown,
              ) => a is Brand<
                  A,
                  ArrayToUnion<BrandTrueKeys>,
                  ArrayToUnion<BrandFalseKeys>,
              >;
              prune: <
                  B extends
                      StrictExtract<Primitive, string | number | bigint | boolean> & {
                          readonly [key in string]: key extends ArrayToUnion<BrandTrueKeys>
                              ? true
                              : false
                      } & Readonly<
                          {
                              "TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3": unknown;
                          },
                      >,
              >(
                  a: B,
              ) => Brand;
              typeName: string;
              validate: (
                  a: unknown,
              ) => Result<
                  Brand<A, ArrayToUnion<BrandTrueKeys>, ArrayToUnion<BrandFalseKeys>>,
                  readonly Readonly<
                      {
                          actualValue: unknown;
                          details?: ValidationErrorDetails;
                          expectedType: string;
                          path: readonly string[];
                          typeName: string;
                      },
                  >[],
              >;
          },
      > & ConstraintsCarrier<C>