# Generic type variables

### `Wrapped<Closing>`

**`Closing extends string`**

​A generic type variable constrained by the [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String), by default of the value captured from the provided `wrap` indicates the closing type of a new [`Wrapped`](https://docs.angular-package.dev/text/wrapper/wrapped) instance.

### `Wrapped<Opening>`

**`Opening extends string`**

​A generic type variable constrained by the [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String), by default of the value captured from the provided `wrap` indicates the opening type of a new [`Wrapped`](https://docs.angular-package.dev/text/wrapper/wrapped) instance.

### `Wrapped<Text>`

**`Text extends string`**

​A generic type variable constrained by the [`string`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) by default of the value captured from the provided `text` parameter indicates the text type of a new [`Wrapped`](https://docs.angular-package.dev/text/wrapper/wrapped) instance.

{% code title="wrapped.class.ts" %}

```typescript
class Wrapped<
  Text extends string = string,
  Opening extends string = string,
  Closing extends string = string
> extends String {
```

{% endcode %}
