Skip to content

@vttforge/core / InferField

Type Alias: InferField<F>

InferField<F> = F extends NumberFieldInstance<infer O> ? Presence<O, number, NumberDefaults> : F extends StringFieldInstance<infer O> ? Presence<O, string, StringDefaults> : F extends BooleanFieldInstance<infer O> ? Presence<O, boolean, BooleanDefaults> : F extends HTMLFieldInstance<infer O> ? Presence<O, string, HTMLDefaults> : F extends ColorFieldInstance<infer O> ? ColorFieldValue<O> : F extends FilePathFieldInstance<infer O> ? Presence<O, string, NullStartDefaults> : F extends ForeignDocumentFieldInstance<infer Doc, infer O> ? ForeignDocumentValue<Doc, O> : F extends ArrayFieldInstance<infer Inner, infer O> ? Presence<O, InferField<...>[], ContainerDefaults> : F extends SetFieldInstance<infer Inner, infer O> ? Presence<O, Set<...>, ContainerDefaults> : F extends SchemaFieldInstance<..., ...> ? Presence<..., ..., ...> : ... extends ... ? ... : ...

Map a single field instance to its runtime TypeScript type. never for shapes we don't recognise; @vttforge/types will widen this matrix to the remaining Foundry fields.

Type Parameters

F

F

MIT licensed.