# GuardType.Output

Extracts the matched output type from a Guard or Guard adapter.

## Signatures

```ts
type Output<T> = [
    T
] extends [
    Guard<infer _I, infer O, infer _E, infer _R>
] ? O : [
    T
] extends [
    AsGuard<infer _I, infer O, infer _E, infer _R>
] ? O : never;
```

## Why

The extractor lets record and dispatch combinators derive their output without duplicating conditional types.

## Ownership and lifetime

This compile-time type acquires no resources and has no runtime lifetime.

## Examples

```ts
import type { Guard } from "@typed/guard"
type Output = Guard.Output<Guard<string, number>>
```
