Sanity Library Reference Docs
    Preparing search index...

    Function defineField

    • Beta

      Define a field within a document, object, image or file definition fields array.

      This function will narrow the schema type down to fields and options based on the provided type-string.

      Using defineField is optional, but should provide improved autocompletion in your IDE, when building your schema. Field-properties like validation and initialValuewill also be more specific.

      See defineType for more examples.

      Type Parameters

      • const TType extends
            | "string"
            | "number"
            | "boolean"
            | "object"
            | "array"
            | "block"
            | "date"
            | "datetime"
            | "document"
            | "file"
            | "geopoint"
            | "image"
            | "reference"
            | "crossDatasetReference"
            | "globalDocumentReference"
            | "slug"
            | "text"
            | "url"
            | "email"
            | "sanity.video"
            | AutocompleteString
      • const TName extends string
      • TSelect extends Record<string, string>
      • TPrepareValue extends Record<keyof TSelect, any>
      • TAlias extends
            | "string"
            | "number"
            | "boolean"
            | "object"
            | "array"
            | "block"
            | "date"
            | "datetime"
            | "document"
            | "file"
            | "geopoint"
            | "image"
            | "reference"
            | "crossDatasetReference"
            | "globalDocumentReference"
            | "slug"
            | "text"
            | "url"
            | "email"
            | "sanity.video" = undefined
      • TStrict extends StrictDefinition = undefined
      • const TSchemaDefinition extends { name: TName; type: TType } & (
            (Omit<StringDefinition, "preview"> | Omit<NumberDefinition, "preview"> | Omit<BooleanDefinition, "preview"> | ... 17 more ... | TypeAliasDefinition<...>) & FieldDefinitionBase
        ) = DefineFieldDefinition<
            TType,
            TName,
            TSelect,
            TPrepareValue,
            NoInfer<TAlias>,
            NoInfer<TStrict>,
        >

      Parameters

      Returns TSchemaDefinition & MaybeWidenValidation<TSchemaDefinition> & MaybeWidenInitialValue<
          TSchemaDefinition,
      >

      • defineField
      • defineArrayMember
      • typed