defineField < 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 > , > , > ( schemaField : { name : TName ; type : TType } & DefineSchemaBase < TType , NoInfer < TAlias > , > & NarrowPreview < TType , NoInfer < TAlias > , TSelect , TPrepareValue > & MaybeAllowUnknownProps < NoInfer < TStrict > , > & FieldDefinitionBase & InferSchemaDefinition < TSchemaDefinition > , defineOptions ?: DefineSchemaOptions < TStrict , TAlias > , ) : TSchemaDefinition & MaybeWidenValidation < TSchemaDefinition > & MaybeWidenInitialValue < TSchemaDefinition , >
Define a field within a document, object, image or file definition
fieldsarray.This function will narrow the schema type down to fields and options based on the provided type-string.
Using
defineFieldis optional, but should provide improved autocompletion in your IDE, when building your schema. Field-properties likevalidationandinitialValuewill also be more specific.See defineType for more examples.