# Common types

> Shared aliases exported from `ngwr/utils` — `Maybe<T>` for optional values and `SafeAny` for explicit interop escapes.

Source: https://ngwr.dev/reference/interfaces/common  
Kind: Type

## Import

```angular-ts
import type { Maybe, SafeAny } from 'ngwr/utils';
```

## Usage

```angular-ts
function findUser(id: string): Maybe<User> {
  return db.get(id) ?? null;
}

// Interop boundary where the shape genuinely isn't known —
// unlike `any`, the intent is explicit and greppable.
function fromLegacyBridge(payload: SafeAny): void {
  // narrow before use
}
```

## API

| Name | Description | Type | Default |
| --- | --- | --- | --- |
| `Maybe<T>` | A value that may be absent — `T \| null \| undefined`. Pairs with [isDefined](https://ngwr.dev/reference/utils/is-defined) to narrow back to `T`. | `type alias` | `—` |
| `SafeAny` | Explicitly untyped value for interop boundaries. Same mechanics as `any`, but the name is searchable and signals intent. | `type alias` | `—` |
