Rust 到 JS 类型转换
Anchor 在 Rust 和 TypeScript 类型之间如何转换的参考
本参考展示了如何在 Rust 和 TypeScript 类型之间进行转换。
基本类型
布尔值
| Rust | TypeScript | 示例 |
|---|---|---|
bool | boolean | true |
数字
| Rust | TypeScript | 示例 |
|---|---|---|
u8/u16/u32/i8/i16/i32 | number | 99 |
u64/u128/i64/i128 | anchor.BN | new anchor.BN(99) |
f32/f64 | number | 1.0 |
字符串
| Rust | TypeScript | 示例 |
|---|---|---|
String | string | "hello" |
集合
数组和向量
| Rust | TypeScript | 示例 |
|---|---|---|
[T; N] (固定数组) | Array<T> | [1, 2, 3] |
Vec<T> (向量) | Array<T> | [1, 2, 3] |
可选值
| Rust | TypeScript | 示例 |
|---|---|---|
Option<T> | T | null | undefined | null (None)42 (Some) |
复杂类型
结构体
枚举
注意事项
- Rust 整数 (
u8到i32) 映射到 JavaScript 的number - 更大的整数 (
u64及以上) 使用 Anchor 的BN类型以保证精度 - Rust 的
Option<T>映射到 TypeScript 的联合类型,包含null/undefined - 结构体和枚举成为 JavaScript 对象