API reference / @evolu/common / Type / ArrayType
Interface: ArrayType<ElementType>
Defined in: packages/common/src/Type.ts:2140
ArrayType extends Type with an additional element
property for reflection.
Extends
Type
<"Array"
,ReadonlyArray
<InferType
<ElementType
>>,ReadonlyArray
<InferInput
<ElementType
>>,ArrayError
<InferError
<ElementType
>>,ReadonlyArray
<InferParent
<ElementType
>>,ArrayError
<InferParentError
<ElementType
>>>
Type Parameters
Type Parameter |
---|
ElementType extends AnyType |
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
| ------------------------------------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [EvoluTypeSymbol]
| readonly
| true
| - | Type
.[EvoluTypeSymbol]
| packages/common/src/Type.ts:169 |
| element
| readonly
| ElementType
| - | - | packages/common/src/Type.ts:2149 |
| Error
| public
| ArrayError
<InferError
<ElementType
>> | The specific error introduced by this Type. ### Example type StringError = typeof String.Error;
| Type
.Error
| packages/common/src/Type.ts:94 |
| Errors
| readonly
| | ArrayError
<InferError
<ElementType
>> | ArrayError
<InferParentError
<ElementType
>> | Error | ParentError ### Example type StringParentErrors = typeof String.Errors;
| Type
.Errors
| packages/common/src/Type.ts:235 |
| from
| readonly
| (value
) => Result
<readonly InferType
<ElementType
>[], | ArrayError
<InferError
<ElementType
>> | ArrayError
<InferParentError
<ElementType
>>> | 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:109 |
| fromParent
| readonly
| (value
) => Result
<readonly InferType
<ElementType
>[], ArrayError
<InferError
<ElementType
>>> | Creates T
from Parent
type. This function skips parent Types validations/transformations when we have already partially validated/transformed value. For example, TrimString.from
checks whether a value is a string and trims it. If we only want to trim a string, we can use fromParent
. ### Example // string & Brand<"Trimmed"> const value = TrimString.fromParent("a ").value; // as efficient as foo.trim()
| Type
.fromParent
| packages/common/src/Type.ts:143 |
| fromUnknown
| readonly
| (value
) => Result
<readonly InferType
<ElementType
>[], | ArrayError
<InferError
<ElementType
>> | ArrayError
<InferParentError
<ElementType
>>> | Creates T
from an unknown value. This is useful when a value is unknown. | Type
.fromUnknown
| packages/common/src/Type.ts:116 |
| Input
| public
| readonly InferInput
<ElementType
>[] | The type expected by from
and fromUnknown
. ### Example type StringInput = typeof String.Input;
| Type
.Input
| packages/common/src/Type.ts:92 |
| is
| readonly
| (value
) => value is readonly InferType<ElementType>[]
| 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 a
string 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:167 |
| name
| readonly
| "Array"
| - | Type
.name
| packages/common/src/Type.ts:100 |
| Parent
| public
| readonly InferParent
<ElementType
>[] | The parent type. ### Example type StringParent = typeof String.Parent;
| Type
.Parent
| packages/common/src/Type.ts:96 |
| ParentError
| public
| ArrayError
<InferParentError
<ElementType
>> | The parent's error. ### Example type StringParentError = typeof String.ParentError;
| Type
.ParentError
| packages/common/src/Type.ts:98 |
| to
| readonly
| (value
) => readonly InferInput
<ElementType
>[] | The opposite of from
and fromUnknown
. This is useful to transform T
back to its Input
representation. For refine
, it only removes the brand. For transform
, it changes value. | Type
.to
| packages/common/src/Type.ts:125 |
| toParent
| readonly
| (value
) => readonly InferParent
<ElementType
>[] | The opposite of fromParent
. | Type
.toParent
| packages/common/src/Type.ts:146 |
| Type
| readonly
| readonly InferType
<ElementType
>[] | The type this Type resolves to. ### Example type String = typeof String.Type;
| Type
.Type
| packages/common/src/Type.ts:180 |