KIT

Option

Option<T> = None | Some<T>

在 JavaScript 中 Rust Option<T> 类型的实现。

在 Rust 中,可选值使用 Option<T> 表示,它可以是:

  • Some(T),表示存在的值。
  • None,表示缺少值。

在 JavaScript 中,这通常表示为 T | null。但是,这种方法在嵌套选项中会失败。 例如,Rust 中的 Option<Option<T>> 将转换为 JavaScript 中的 T | null | null,这等效于 T | null。 这意味着无法区分 Some(None)None,从而使嵌套选项变得不可能。

Option 类型通过镜像 Rust 的 Option<T> 类型来帮助解决此问题。

type Option<T> = Some<T> | None;
type Some<T> = { __option: 'Some'; value: T };
type None = { __option: 'None' };

类型参数

类型参数描述
T包含值的类型。

示例

以下是如何创建 Option 值。

为了改善开发者体验,提供了辅助函数。 TypeScript 可以推断 T 的类型,也可以显式提供。

// 创建具有值的 option。
some('Hello World');
some<number | string>(123);
 
// 创建一个空的 option。
none();
none<number | string>();

参见

On this page