API reference / @evolu/common / Type / ObjectType
Interface: ObjectType<Props>
Defined in: packages/common/src/Type.ts:2736
ObjectType extends Type with an additional props property for
reflection.
Extends
Type<"Object",Readonly<ObjectT<Props>>,Readonly<ObjectInput<Props>>,ObjectError<{ [K in keyof Props]: InferError<Props[K]> }>,Readonly<ObjectParent<Props>>,ObjectError<{ [K in keyof Props]: InferParentError<Props[K]> }>>
Type Parameters
| Type Parameter |
|---|
Props extends Record<string, AnyType> |
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
| ------------------------------------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [EvoluTypeSymbol] | readonly | true | - | Type.[EvoluTypeSymbol] | packages/common/src/Type.ts:288 |
| Error | public | ObjectError<{ [K in string | number | symbol]: InferError<Props[K]> }> | The specific error introduced by this Type. ### Example type StringError = typeof String.Error; | Type.Error | packages/common/src/Type.ts:194 |
| Errors | readonly | | ObjectError<{ [K in string | number | symbol]: InferError<Props[K]> }> | ObjectError<{ [K in string | number | symbol]: InferParentError<Props[K]> }> | Error | ParentError ### Example type StringParentErrors = typeof String.Errors; | Type.Errors | packages/common/src/Type.ts:354 |
| from | readonly | (value) => Result<Readonly<DrainOuterGeneric<{ [K in string | number | symbol]: ({ [K in string | number | symbol]: InferType<Props[K]> } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>>, | ObjectError<{ [K in string | number | symbol]: InferError<Props[K]> }> | ObjectError<{ [K in string | number | symbol]: InferParentError<Props[K]> }>> | Creates T from an Input value. This is useful when we have a typed value. from is a typed alias of fromUnknown. | Type.from | packages/common/src/Type.ts:209 |
| fromParent | readonly | (value) => Result<Readonly<DrainOuterGeneric<{ [K in string | number | symbol]: ({ [K in string | number | symbol]: InferType<Props[K]> } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>>, ObjectError<{ [K in string | number | symbol]: InferError<Props[K]> }>> | Creates T from Parent type. This function skips parent Types validations when we have already partially validated value. | Type.fromParent | packages/common/src/Type.ts:265 |
| fromUnknown | readonly | (value) => Result<Readonly<DrainOuterGeneric<{ [K in string | number | symbol]: ({ [K in string | number | symbol]: InferType<Props[K]> } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>>, | ObjectError<{ [K in string | number | symbol]: InferError<Props[K]> }> | ObjectError<{ [K in string | number | symbol]: InferParentError<Props[K]> }>> | Creates T from an unknown value. This is useful when a value is unknown. | Type.fromUnknown | packages/common/src/Type.ts:257 |
| Input | public | Readonly<DrainOuterGeneric<{ [K in string | number | symbol]: ({ [K in string | number | symbol]: InferInput<Props[K]> } & { [K in string | number | symbol]?: Props[K] extends OptionalType<U> ? InferInput<U> : never })[K] }>> | The type expected by from and fromUnknown. ### Example type StringInput = typeof String.Input; | Type.Input | packages/common/src/Type.ts:192 |
| is | readonly | (value) => value is Readonly<DrainOuterGeneric<{ [K in string | number | symbol]: ({ [K in string | number | symbol]: InferType<Props[K]> } & { [K in string | number | symbol]?: Props[K] extends OptionalType<U> ? InferType<U> : never })[K] }>> | A type guard that checks whether an unknown value satisfies the Type. ### Example const value: unknown = "hello"; if (String.is(value)) { // TypeScript now knows valueis astring here. console.log("This is a valid string!"); } const strings: unknown[] = [1, "hello", true, "world"]; const filteredStrings = strings.filter(String.is); console.log(filteredStrings); // ["hello", "world"] | Type.is | packages/common/src/Type.ts:286 |
| name | readonly | "Object" | - | Type.name | packages/common/src/Type.ts:200 |
| orThrow | readonly | (value) => T | Creates T from an Input value, throwing an error if validation fails. This is a convenience method that combines from with getOrThrow. When to use: - Configuration values that are guaranteed to be valid (e.g., hardcoded constants) - Application startup where failure should crash the program - Test code with known valid inputs - Converting from trusted sources where validation failure indicates a programming error When NOT to use: - User input validation - use from and handle errors gracefully - Data from external APIs or files - use from for proper error handling - Library code that should return Results rather than throw ### Example // ✅ Good: Known valid constant const maxRetries = PositiveInt.orThrow(3); // ✅ Good: App configuration that should crash on invalid values const appName = SimpleName.orThrow("MyApp"); // ❌ Avoid: User input (use from instead) const userAge = PositiveInt.orThrow(userInput); // Could crash! // ✅ Better: Handle user input gracefully const ageResult = PositiveInt.from(userInput); if (!ageResult.ok) { // Handle validation error } | Type.orThrow | packages/common/src/Type.ts:250 |
| Parent | public | Readonly<DrainOuterGeneric<{ [K in string | number | symbol]: ({ [K in string | number | symbol]: InferParent<Props[K]> } & { [K in string | number | symbol]?: Props[K] extends OptionalType<U> ? InferParent<U> : never })[K] }>> | The parent type. ### Example type StringParent = typeof String.Parent; | Type.Parent | packages/common/src/Type.ts:196 |
| ParentError | public | ObjectError<{ [K in string | number | symbol]: InferParentError<Props[K]> }> | The parent's error. ### Example type StringParentError = typeof String.ParentError; | Type.ParentError | packages/common/src/Type.ts:198 |
| props | readonly | Props | - | - | packages/common/src/Type.ts:2745 |
| Type | readonly | T | The type this Type resolves to. ### Example type String = typeof String.Type; | Type.Type | packages/common/src/Type.ts:299 |