# gt-node: General Translation Node.js SDK: declareVar
URL: https://generaltranslation.com/ru/docs/node/reference/functions/declare-var.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Помечает значение как non-derivable в вызове derive от General Translation. Справочник API для declareVar.

Значение non-derivable — это значение, которое компилятор General Translation не может статически проанализировать. Используйте `declareVar` внутри вызова [`derive`](/docs/node/reference/functions/derive), чтобы изолировать ту часть выражения, которую нужно обрабатывать как переменную только во время выполнения.

## Обзор [#overview]

Вызовите `declareVar` со значением, чтобы получить закодированную ICU-строку `select`, в которой это значение помещается в ветку `other`. Это позволяет компилятору сохранять окружающий контент выводимым, а обёрнутое значение обрабатывать как переменную.

```ts
import { declareVar, derive, getGT } from 'gt-node';

const gt = await getGT();
const message = gt(`My name is ${derive(declareVar(getName()))}`);
```

Сигнатура:

```ts
declareVar(
  variable: string | number | boolean | null | undefined,
  options?: { $name?: string }
): string
```

## Как это работает [#how-it-works]

* **Маркер non-derivable значения.** `declareVar` оборачивает свой аргумент в ICU-выражение `select` (`{_gt_, select, other {...}}`), чтобы компилятор воспринимал его как переменную, а не как статическое значение.
* **Необязательное имя.** Передайте `$name`, чтобы пометить переменную в закодированном выводе.
* **Восстановление.** Строку, содержащую результат `declareVar`, можно декодировать обратно в интерполированный вид с помощью [`decodeVars`](/docs/node/reference/functions/decode-vars).

## Параметры [#parameters]

| Параметр                | Описание                                          | Тип                                                | Необязательный | По умолчанию |
| ----------------------- | ------------------------------------------------- | -------------------------------------------------- | -------------- | ------------ |
| [`variable`](#variable) | Значение, которое нужно пометить как non-derivable. | `string \| number \| boolean \| null \| undefined` | Нет            | —            |
| [`options`](#options)   | Параметры объявления.                             | `{ $name?: string }`                               | Да             | —            |

### `variable` [#variable]

**Тип** `string | number | boolean | null | undefined` · **Обязательно**

Значение, которое нужно пометить как non-derivable. Оно преобразуется в строку и очищается.

### `options` [#options]

**Тип** `{ $name?: string }` · **Необязательно**

* `$name?: string` — необязательное имя переменной, включаемое в закодированный результат.

## Возвращаемое значение [#returns]

**Тип** `string`

Закодированная строка ICU `select`, содержащая значение (и, при необходимости, имя).

## Примеры [#examples]

```ts
import { declareVar, derive, getGT } from 'gt-node';

function derivableName() {
  if (someCondition) {
    return declareVar(Math.random().toString());
  }
  return 'John Doe';
}

const gt = await getGT();
const greeting = gt(`My name is ${derive(derivableName())}`);
```

## Заметки [#notes]

* Используйте `declareVar` только внутри вызова [`derive`](/docs/node/reference/functions/derive).
* Преобразуйте закодированные переменные обратно в текст с помощью [`decodeVars`](/docs/node/reference/functions/decode-vars).

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
