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 对象