field() 
This function takes an initial value and a yup schema. This function returns Field object.
Parameters 
The field() takes 3 parameters and some generic type parameters:
typescript
declare function field<T>(
  value: T | Ref<T>,
  schema?: FieldSchema,
  validateOptions?: ValidateOptions
): Field<T>;
declare function field<T, U extends T>(
  value: T | Ref<T>,
  schema?: FieldSchema,
  validateOptions?: ValidateOptions
): FieldWithPreferredType<T, U>;1. value Required 
- Pass an initial value like such as string,number,boolean, andstring[]types.
TIP
Internally the value is made reactive by shallowRef(). To use a Ref other than shallowRef(), pass a Ref object instead.
typescript
import { ref } from "vue";
const point = field(
  ref({ x: 0, y: 0, z: 0 }),
  yup
    .object()
    .shape({ x: yup.number().required(),  y: yup.number().required(), z: yup.number().required() })
    .test({
      test: ({ x, y, z }) => x ** 2 + y ** 2 + z ** 2 <= 1,
      message: "Specify the inside of the unit ball.",
    })
);2. schema Optional 
- Pass a yup schema or a function that returns a yup schema. - If you pass a function, you can refer to $valueof other fields.
 
- If you pass a function, you can refer to 
TIP
Even when using v-model.number, changing the input box to empty may set "" (an empty string). This causes the validation with yup.NumberSchema to output an undesirable error message:
typescript
try {
  yup.number().required().validateSync("");
} catch (e) {
  console.log(e.message); // this must be a `number` type, but the final value was: `NaN` (cast from the value `""`).
}To avoid the above, empty strings are validated as undefined if yup.NumberSchema is specified.
typescript
const age = field(20, yup.number().required());
// Equivalent to changing <input type="number" v-model.number="age.$value"> to empty
age.$value = "";
console.log(age.$error.message); // this is a required fieldWARNING
Since validateSync() is used internally, Async tests are not available.
3. validateOptions Optional 
- Pass { abortEarly: false }if all validation errors by the yup schema are required.
T Optional 
- Pass the type of $valueexplicitly likeref<T>().
U Optional 
- Pass the preferred type to be the result of toObject().
Details of Field object 
$value property 
- The field value that can be set to v-model.
$error property Readonly 
- Returns a result of validating $valuereactively with the yup schema.- If $valueis invalid,yup.ValidationErroris returned.
- If $valueis valid,undefinedis returned.
 
- If 
$errorMessages property Readonly 
- Returns an error messages array (string[]) reactively as well as$errorproperty.- If abortEarlyis false, it can return more than one element.
 
- If 
$label property Readonly 
- Returns the label of the yup schema. - For example, if you pass yup.number().label("Age"), you will obtain"Age".
- If the schemayou passed is a function, the function is evaluated once when the object is created.
 
- For example, if you pass