# ExpressionWrapper (/docs/core/reference/api/interfaces/ExpressionWrapper)



[@kysoql/core](/docs/core/reference/api) / ExpressionWrapper

Typed wrapper around a filter operation node.

## Type Parameters [#type-parameters]

| Type Parameter                         | Default type |
| -------------------------------------- | ------------ |
| `DB`                                   | -            |
| `TB` *extends* keyof `DB`              | -            |
| `ContainsSemiJoin` *extends* `boolean` | `false`      |

## Methods [#methods]

<a id="api-tooperationnode" />

### toOperationNode() [#tooperationnode]

```ts
toOperationNode(): OperationNode;
```

Returns the immutable operation node represented by this expression.

#### Returns [#returns]

[`OperationNode`](/docs/core/reference/api/interfaces/OperationNode)

## Properties [#properties]

| Property                                                  | Modifier   | Type               | Description                                                                                |
| --------------------------------------------------------- | ---------- | ------------------ | ------------------------------------------------------------------------------------------ |
| <a id="api-property-expressiontype" /> `[expressionType]` | `readonly` | `object`           | Type-only marker used to preserve this expression capability through TypeScript inference. |
| `[expressionType].db`                                     | `readonly` | `DB`               | Schema type carried through expression inference.                                          |
| `[expressionType].table`                                  | `readonly` | `TB`               | Salesforce object type carried through expression inference.                               |
| `[expressionType].containsSemiJoin`                       | `readonly` | `ContainsSemiJoin` | Whether this expression already contains a semi-join.                                      |
