# gt-node: General Translation Node.js SDK: declareVar URL: https://generaltranslation.com/ru/docs/node/reference/functions/declare-var.mdx --- title: declareVar 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).