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

Контент, пригодный для Деривации, вычисляется в исходном коде, но сводится к фиксированному набору значений, которые CLI может перевести. Используйте `derive`, когда переводимая строка интерполирует значение, которое должно быть обнаружено при извлечении, а не обрабатываться как переменная времени выполнения.

## Обзор [#overview]

Оберните вычисляемое выражение в `derive` внутри переводимой строки. CLI разрешает это выражение во все возможные статические значения и включает их в исходный текст для перевода. Во время выполнения `derive` возвращает переданный аргумент без изменений.

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

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

Сигнатура:

```ts
derive<T extends string | boolean | number | null | undefined>(content: T): T
```

*Примечание: `derive` — это маркер, используемый на этапе компиляции. После добавления или изменения вызовов `derive` выполните [`gt validate`](/docs/cli/reference/commands/validate), чтобы убедиться, что CLI может разрешать каждое выражение, пригодное для Деривации.*

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

* **Подсказка для извлечения.** CLI пытается определить все возможные статические значения обёрнутого выражения и добавляет их в содержимое, отправляемое на перевод.
* **Без изменений во время выполнения.** Во время выполнения `derive` возвращает ровно то, что получил, поэтому никак не влияет на значение.
* **Недеривируемые значения.** Если выражение нельзя статически проанализировать, оберните его в [`declareVar`](/docs/node/reference/functions/declare-var) внутри вызова `derive`.

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

| Параметр              | Описание                                            | Тип                                                | Необязательный | По умолчанию |
| --------------------- | --------------------------------------------------- | -------------------------------------------------- | -------------- | ------------ |
| [`content`](#content) | Содержимое, которое нужно пометить как пригодное для Деривации. | `string \| boolean \| number \| null \| undefined` | Нет            | —            |

### `content` [#content]

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

Содержимое, которое нужно пометить как пригодное для Деривации при извлечении переводов.

## Возвращает [#returns]

**Тип** `T`

То же содержимое без изменений во время выполнения.

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

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

function getSubject() {
  return Math.random() > 0.5 ? 'Alice' : 'Brian';
}

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

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

* `derive` влияет только на извлечение и никогда не меняет значение во время выполнения.
* Используйте вместе с [`declareVar`](/docs/node/reference/functions/declare-var) для значений, которые невозможно статически определить.

## Sitemap

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