API reference / @evolu/common / Type / UnionType
Interface: UnionType<Members>
Defined in: packages/common/src/Type.ts:3015
UnionType extends Type with an additional members
property for
reflection.
Extends
Type
<"Union"
,InferType
<Members
[number
]>,InferInput
<Members
[number
]>,UnionError
<InferErrors
<Members
[number
]>>,InferInput
<Members
[number
]>,never
>
Type Parameters
Type Parameter |
---|
Members extends [AnyType , ...ReadonlyArray<AnyType> ] |
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
| ------------------------------------------------ | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [EvoluTypeSymbol]
| readonly
| true
| - | Type
.[EvoluTypeSymbol]
| packages/common/src/Type.ts:169 |
| Error
| public
| UnionError
<InferErrors
<Members
[number
]>> | The specific error introduced by this Type. ### Example type StringError = typeof String.Error;
| Type
.Error
| packages/common/src/Type.ts:94 |
| Errors
| readonly
| UnionError
<InferErrors
<Members
[number
]>> | Error | ParentError ### Example type StringParentErrors = typeof String.Errors;
| Type
.Errors
| packages/common/src/Type.ts:235 |
| from
| readonly
| (value
) => Result
<InferType
<Members
[number
]>, UnionError
<InferErrors
<Members
[number
]>>> | 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
<InferType
<Members
[number
]>, UnionError
<InferErrors
<Members
[number
]>>> | 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
<InferType
<Members
[number
]>, UnionError
<InferErrors
<Members
[number
]>>> | Creates T
from an unknown value. This is useful when a value is unknown. | Type
.fromUnknown
| packages/common/src/Type.ts:116 |
| Input
| public
| InferInput
<Members
[number
]> | 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 InferType<Members[number]>
| 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 |
| members
| readonly
| Members
| - | - | packages/common/src/Type.ts:3024 |
| name
| readonly
| "Union"
| - | Type
.name
| packages/common/src/Type.ts:100 |
| Parent
| public
| InferInput
<Members
[number
]> | The parent type. ### Example type StringParent = typeof String.Parent;
| Type
.Parent
| packages/common/src/Type.ts:96 |
| ParentError
| public
| never
| The parent's error. ### Example type StringParentError = typeof String.ParentError;
| Type
.ParentError
| packages/common/src/Type.ts:98 |
| to
| readonly
| (value
) => InferInput
| 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
) => InferInput
| The opposite of fromParent
. | Type
.toParent
| packages/common/src/Type.ts:146 |
| Type
| readonly
| InferType
| The type this Type resolves to. ### Example type String = typeof String.Type;
| Type
.Type
| packages/common/src/Type.ts:180 |