# gt-node: General Translation Node.js SDK: derive
URL: https://generaltranslation.com/zh/docs/node/reference/functions/derive.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 将计算得到的内容标记为可派生，以便 General Translation 提取。derive 的 API 参考。

可派生内容是在源代码中计算得到的，但会解析为一组 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` 会原样返回接收到的内容，因此不会对该值产生任何影响。
* **不可推导的值。** 当某个表达式无法被静态分析时，请在 `derive` 调用中使用 [`declareVar`](/docs/node/reference/functions/declare-var) 将其包裹起来。

## 参数 [#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.
