# ExpressionFunctionAvailabilityContext

Canonical page: https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext

Context for `AdaptableExpressionFunctionEnhancement.isAvailable` and (as a
base) for the global `expressionOptions.isExpressionFunctionAvailable`.
Identifies the function being queried and the module requesting it.

```ts title="TypeScript"
export interface ExpressionFunctionAvailabilityContext extends BaseContext 
```

###### Extends

[`BaseContext`](https://www.adaptabletools.com/docs/reference/basecontext.md)

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [column](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#column) | [`AdaptableColumn`](https://www.adaptabletools.com/docs/reference/adaptablecolumn.md) | The Column the function is being offered for. Set **only** when resolving<br/>the operator list for a specific Column Filter (so `isExpressionFunctionAvailable`<br/>can allow/deny operators per Column); `undefined` for module-level<br/>resolution. Callbacks must tolerate it being `undefined`. |
| [columnScope](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#columnscope) | [`ColumnScope`](https://www.adaptabletools.com/docs/reference/columnscope.md) | The `ColumnScope` for  (a single-Column scope). Provided<br/>alongside `column` for Column Filter operator resolution; `undefined`<br/>otherwise. |
| [expressionFunction](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#expressionfunction) | `AdaptableExpressionFunctionMetadata` | The function definition itself (argument model, docs and Adaptable<br/>enhancement metadata). Scalar / observable entries also carry the<br/>handler; aggregation entries are docs-only. |
| [functionName](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#functionname) | `string` | The function&#39;s registered name / AQL keyword (e.g. `GT`, `CONTAINS`,<br/>`SUM`, a custom function name). |
| [functionType](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#functiontype) | [`ExpressionFunctionType`](https://www.adaptabletools.com/docs/reference/expressionfunctiontype.md) | The kind of expression function (scalar, observable or aggregated). |
| [isCustom](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#iscustom) | `boolean` | `false` for built-in system functions, `true` for user-registered<br/>custom functions. |
| [module](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#module) | [`AdaptableModule`](https://www.adaptabletools.com/docs/reference/adaptablemodule.md)` \| undefined` | The module requesting the function (e.g. ColumnFilter, GridFilter,<br/>CalculatedColumn, Alert). May be `undefined` in rare cases —<br/>callbacks must tolerate it. |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/expressionfunctionavailabilitycontext.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

## Property Details

### column

The Column the function is being offered for. Set **only** when resolving
the operator list for a specific Column Filter (so `isExpressionFunctionAvailable`
can allow/deny operators per Column); `undefined` for module-level
resolution. Callbacks must tolerate it being `undefined`.

```ts title="TypeScript"
column?: AdaptableColumn;
```

###### Property Value

[`AdaptableColumn`](https://www.adaptabletools.com/docs/reference/adaptablecolumn.md)

### columnScope

The `ColumnScope` for  (a single-Column scope). Provided
alongside `column` for Column Filter operator resolution; `undefined`
otherwise.

```ts title="TypeScript"
columnScope?: ColumnScope;
```

###### Property Value

[`ColumnScope`](https://www.adaptabletools.com/docs/reference/columnscope.md)

### expressionFunction

The function definition itself (argument model, docs and Adaptable
enhancement metadata). Scalar / observable entries also carry the
handler; aggregation entries are docs-only.

```ts title="TypeScript"
expressionFunction: AdaptableExpressionFunctionMetadata;
```

###### Property Value

`AdaptableExpressionFunctionMetadata`

### functionName

The function&#39;s registered name / AQL keyword (e.g. `GT`, `CONTAINS`,
`SUM`, a custom function name).

```ts title="TypeScript"
functionName: string;
```

###### Property Value

`string`

### functionType

The kind of expression function (scalar, observable or aggregated).

```ts title="TypeScript"
functionType: ExpressionFunctionType;
```

###### Property Value

[`ExpressionFunctionType`](https://www.adaptabletools.com/docs/reference/expressionfunctiontype.md)

### isCustom

`false` for built-in system functions, `true` for user-registered
custom functions.

```ts title="TypeScript"
isCustom: boolean;
```

###### Property Value

`boolean`

### module

The module requesting the function (e.g. ColumnFilter, GridFilter,
CalculatedColumn, Alert). May be `undefined` in rare cases —
callbacks must tolerate it.

```ts title="TypeScript"
module: AdaptableModule | undefined;
```

###### Property Value

[`AdaptableModule`](https://www.adaptabletools.com/docs/reference/adaptablemodule.md)` | undefined`

### adaptableContext

> *Inherited from [BaseContext](https://www.adaptabletools.com/docs/reference/basecontext.md)*

Custom application Context provided in `AdaptableOptions.adaptableContext`

```ts title="TypeScript"
adaptableContext: any;
```

###### Property Value

`any`
