Skip to content

Commit fda54ed

Browse files
committed
docs: add constant function usage documentation
Document the constant() API for embedding static JSON-serializable values in expressions without runtime variables.
1 parent 18e2920 commit fda54ed

1 file changed

Lines changed: 30 additions & 1 deletion

File tree

README.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ bun install @codehz/json-expr
2525

2626
```typescript
2727
import { z } from "zod";
28-
import { variable, expr, compile, evaluate } from "@codehz/json-expr";
28+
import { variable, expr, compile, evaluate, constant } from "@codehz/json-expr";
2929

3030
// 定义类型化变量
3131
const x = variable(z.number());
@@ -93,6 +93,35 @@ const compiled = compile(result, { x, y });
9393

9494
## API 参考
9595

96+
### `constant<T>(value: T): Expression<{}, T>`
97+
98+
创建一个编译期常量表达式。这是 `expr({})(JSON.stringify(value))` 的快速路径,用于在表达式中嵌入静态值,避免在运行时传入或在多处重复编写。
99+
100+
**参数:**
101+
102+
- `value` - 要嵌入的常量值(必须是 JSON 可序列化的:string、number、boolean、null、数组或对象)
103+
104+
**返回值:** Expression 对象
105+
106+
**示例:**
107+
108+
```typescript
109+
import { constant, expr, variable, compile, evaluate } from "@codehz/json-expr";
110+
import { z } from "zod";
111+
112+
// 创建常量
113+
const PI = constant(3.14159);
114+
const config = constant({ maxRetries: 3, timeout: 5000 });
115+
116+
// 在表达式中使用常量
117+
const radius = variable(z.number());
118+
const area = expr({ PI, radius })("PI * radius * radius");
119+
120+
const compiled = compile(area, { radius });
121+
const result = evaluate(compiled, { radius: 2 });
122+
// => 12.56636
123+
```
124+
96125
### `variable<T>(schema: T): Variable<T>`
97126

98127
创建一个类型化变量。

0 commit comments

Comments
 (0)