Skip to main content

Class: None

@sapphire/result.None

Implements

Constructors

constructor

new None(): None

Returns

None

Methods

[iterator]

[iterator](): Generator<never, any, unknown>

Returns an iterator over the possibly contained value.

The iterator yields one value if the result is Some, otherwise none.

Returns

Generator<never, any, unknown>

Example

const x = some(7);
for (const value of x) {
console.log(value);
}
// Logs 7

Example

const x = none;
for (const value of x) {
console.log(value);
}
// Doesn't log

See

Implementation of

IOption.[iterator]

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:164


and

and(option): this

Returns None if the option is None, otherwise returns option.

Parameters

NameTypeDescription
optionOption<any>The option.

Returns

this

Example

const x: Option<number> = some(2);
const y: Option<string> = none;
assert.equal(x.and(y), none);

Example

const x: Option<number> = none;
const y: Option<string> = some('foo');
assert.equal(x.and(y), none);

Example

const x: Option<number> = some(2);
const y: Option<string> = some('foo');
assert.equal(x.and(y), some('foo'));

Example

const x: Option<number> = none;
const y: Option<string> = none;
assert.equal(x.and(y), none);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.and

Implementation of

IOption.and

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:85


andThen

andThen(cb): this

Calls cb if the result is Ok, otherwise returns the Err value of self.

This function can be used for control flow based on Result values.

Parameters

NameTypeDescription
cb(value: never) => Option<any>The predicate.

Returns

this

Example

function fractionOf4(value: number) {
return value === 0 ? none : some(4 / value);
}

assert.equal(some(2).andThen(fractionOf4), some(4));
assert.equal(some(0).andThen(fractionOf4), none);
assert.equal(none.andThen(fractionOf4), none);

See

https://doc.rust-lang.org/std/result/enum.Result.html#method.and_then

Implementation of

IOption.andThen

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:90


contains

contains(value?): false

Returns true if the option is a Some value containing the given value.

Parameters

NameTypeDescription
value?anyThe value to compare.

Returns

false

Example

const x: Option<number> = some(2);
assert.equal(x.contains(2), true);

Example

const x: Option<number> = some(3);
assert.equal(x.contains(2), false);

Example

const x: Option<number> = none;
assert.equal(x.contains(2), false);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.contains

Implementation of

IOption.contains

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:115


eq

eq(other): true

Checks whether or not other equals with self.

Parameters

NameTypeDescription
otherNoneThe other option to compare.

Returns

true

See

https://doc.rust-lang.org/std/cmp/trait.PartialEq.html#tymethod.eq

Implementation of

IOption.eq

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:146

eq(other): false

Parameters

NameType
otherSome<any>

Returns

false

Implementation of

IOption.eq

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:147

eq(other): boolean

Parameters

NameType
otherOption<any>

Returns

boolean

Implementation of

IOption.eq

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:148


expect

expect(message): never

Returns the contained Some value.

Parameters

NameTypeDescription
messagestringThe message for the error. If the value is an Err, it throws an OptionError with the given message.

Returns

never

Example

const x: Option<string> = some(2);
assert.equal(x.expect('Whoops!'), 2);

Example

const x: Option<string> = none;
assert.throws(() => x.expect('Whoops!'), {
name: 'OptionError',
message: 'Whoops'
});

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.expect

Implementation of

IOption.expect

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:23


filter

filter(predicate): None

Returns None if the option is None, otherwise calls predicate with the wrapped value and returns:

  • Some(t) if predicate returns true (where t is the wrapped value), and
  • None if predicate returns false.

Parameters

NameTypeDescription
predicate(value: never) => booleanThe predicate.

Returns

None

Example

function isEven(value: number) {
return n % 2 === 0;
}

assert.equal(none.filter(isEven), none);
assert.equal(some(3).filter(isEven), none);
assert.equal(some(4).filter(isEven), some(4));

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.filter

Implementation of

IOption.filter

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:110


flatten

flatten(): None

Converts from Result<Result<T, E>, E> to Result<T, E>.

Returns

None

Example

const x: Option<Option<number>> = some(some(6));
assert.equal(x.flatten(), some(6));

Example

const x: Option<Option<number>> = some(none);
assert.equal(x.flatten(), none);

Example

const x: Option<Option<number>> = none;
assert.equal(x.flatten(), none);

See

https://doc.rust-lang.org/std/result/enum.Result.html#method.flatten

Implementation of

IOption.flatten

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:138


inspect

inspect(cb?): this

Calls the provided closure with a reference to the contained value (if Some).

Parameters

NameTypeDescription
cb?(value: never) => voidThe predicate.

Returns

this

Seealso

inspectAsync for the awaitable version.

Example

some(2).inspect(console.log);
// Logs: 2

Example

none.inspect(console.log);
// Doesn't log

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.inspect

Implementation of

IOption.inspect

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:63


inspectAsync

inspectAsync(cb?): Promise<None>

Calls the provided closure with a reference to the contained value (if Some).

Parameters

NameTypeDescription
cb?(value: never) => unknownThe predicate.

Returns

Promise<None>

Seealso

inspect for the sync version.

Example

await some(2).inspectAsync(console.log);
// Logs: 2

Example

await none.inspectAsync(console.log);
// Doesn't log

Note

This is an extension not supported in Rust

Implementation of

IOption.inspectAsync

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:68


intoPromise

intoPromise(): Promise<None>

Returns a Promise object with the awaited value (if Some).

Returns

Promise<None>

Example

let x = some(Promise.resolve(3));
assert.equal(await x.intoPromise(), some(3));

Note

This is an extension not supported in Rust

Implementation of

IOption.intoPromise

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:142


isNone

isNone(): this is None

Returns true if the option is a None value.

Returns

this is None

Example

const x: Option<number> = some(2);
assert.equal(x.isNone(), false);

Example

const x: Option<number> = none;
assert.equal(x.isNone(), true);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.is_none

Implementation of

IOption.isNone

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:19


isSome

isSome(): false

Returns true if the option is a Some value.

Returns

false

Example

const x: Option<number> = some(2);
assert.equal(x.isSome(), true);

Example

const x: Option<number> = none;
assert.equal(x.isSome(), false);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.is_some

Implementation of

IOption.isSome

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:10


isSomeAnd

isSomeAnd(cb?): false

Returns true if the option is a Some and the value inside of it matches a predicate.

Parameters

NameTypeDescription
cb?(value: never) => booleanThe predicate.

Returns

false

Example

const x: Option<number> = some(2);
assert.equal(x.isSomeAnd((x) => x > 1), true);

Example

const x: Option<number> = some(0);
assert.equal(x.isSomeAnd((x) => x > 1), false);

Example

const x: Option<number> = none;
assert.equal(x.isSomeAnd((x) => x > 1), false);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.is_some_and

Implementation of

IOption.isSomeAnd

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:14


iter

iter(): Generator<never, any, unknown>

Returns an iterator over the possibly contained value.

The iterator yields one value if the result is Some, otherwise none.

Returns

Generator<never, any, unknown>

Example

const x = some(7);
for (const value of x) {
console.log(value);
}
// Logs 7

Example

const x = none;
for (const value of x) {
console.log(value);
}
// Doesn't log

See

Implementation of

IOption.iter

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:81


map

map(cb): this

Maps an Option<T> to Option<U> by applying a function to a contained value.

Parameters

NameTypeDescription
cb(value: never) => anyThe predicate.

Returns

this

Example

const maybeSomeString = some('Hello, world!');
const maybeSomeLength = maybeSomeString.map((value) => value.length);

assert.equal(maybeSomeLength, some(13));

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.map

Implementation of

IOption.map

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:39


mapInto

mapInto(cb): this

Maps a Some<T> to the returned Option<U> by applying a function to a contained value, leaving None untouched.

Parameters

NameTypeDescription
cb(value: never) => Option<any>The predicate.

Returns

this

Example

const input: Option<string> = some('Hello, world!');
const result = input.mapInto((value) => some(value.length));

assert.equal(result, some(13));

Example

const input: Option<string> = none;
const result = input.mapInto((value) => some(value.length));

assert.equal(result, none);

Note

This is an extension not supported in Rust

Implementation of

IOption.mapInto

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:44


mapNoneInto

mapNoneInto<R>(cb): R

Maps a None to the returned Option<U> by applying a function to a contained value, leaving Some<T> untouched.

Type parameters

NameType
Rextends Option<any>

Parameters

NameTypeDescription
cb() => RThe predicate.

Returns

R

Example

const input: Option<string> = some('Hello, world!');
const result = input.mapNoneInto(() => some(13));

assert.equal(result, some('Hello, world!'));

Example

const input: Option<string> = none;
const result = input.mapNoneInto(() => some(13));

assert.equal(result, some(13));

Note

This is an extension not supported in Rust

Implementation of

IOption.mapNoneInto

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:59


mapOr

mapOr<R>(defaultValue, cb?): R

Returns the provided default result (if none), or applies a function to the contained value (if any).

Arguments passed to mapOr are eagerly evaluated; if you are passing the result of a function call, it is recommended to use mapOrElse, which is lazily evaluated.

Type parameters

Name
R

Parameters

NameTypeDescription
defaultValueRThe default value.
cb?(value: never) => RThe predicate.

Returns

R

Example

const x: Option<string> = some('hello');
assert.equal(x.mapOr(42, (value) => value.length), 5);

Example

const x: Option<string> = none;
assert.equal(x.mapOr(42, (value) => value.length), 42);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.map_or

Implementation of

IOption.mapOr

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:49


mapOrElse

mapOrElse<R>(defaultValue, cb?): R

Computes a default function result (if none), or applies a different function to the contained value (if any).

Type parameters

Name
R

Parameters

NameTypeDescription
defaultValue() => RThe default value.
cb?(value: never) => RThe predicate.

Returns

R

Example

const x: Option<string> = some('hello');
assert.equal(x.mapOrElse(() => 42, (value) => value.length), 5);

Example

const x: Option<string> = none;
assert.equal(x.mapOrElse(() => 42, (value) => value.length), 42);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.map_or_else

Implementation of

IOption.mapOrElse

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:54


match

match<SomeValue, NoneValue>(branches): NoneValue

Runs ok function if self is Ok, otherwise runs err function.

Type parameters

Name
SomeValue
NoneValue

Parameters

NameTypeDescription
branchesObjectThe branches to match.
branches.none() => NoneValue-
branches.some(value: never) => SomeValue-

Returns

NoneValue

Example

const option = some(4).match({
some: (v) => v,
none: () => 0
});
assert.equal(option, 4);

Example

const option = none.match({
some: (v) => v,
none: () => 0
});
assert.equal(option, 0);

Implementation of

IOption.match

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:160


ne

ne(other): false

Checks whether or not other doesn't equal with self.

Parameters

NameTypeDescription
otherNoneThe other option to compare.

Returns

false

See

https://doc.rust-lang.org/std/cmp/trait.PartialEq.html#method.ne

Implementation of

IOption.ne

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:153

ne(other): true

Parameters

NameType
otherSome<any>

Returns

true

Implementation of

IOption.ne

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:154

ne(other): boolean

Parameters

NameType
otherOption<any>

Returns

boolean

Implementation of

IOption.ne

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:155


okOr

okOr<E>(error): Err<E>

Transforms the Option<T> into a Result<T, E>, mapping Some(v) to Ok(v) and None to Err(err).

Arguments passed to okOr are eagerly evaluated; if you are passing the result of a function call, it is recommended to use okOrElse, which is lazily evaluated.

Type parameters

Name
E

Parameters

NameTypeDescription
errorEThe error to be used.

Returns

Err<E>

Example

const x: Option<string> = some('hello');
assert.equal(x.okOr(0), ok('hello'));

Example

const x: Option<string> = none;
assert.equal(x.okOr(0), err(0));

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.ok_or

Implementation of

IOption.okOr

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:73


okOrElse

okOrElse<E>(cb): Err<E>

Transforms the Option<T> into a Result<T, E>, mapping Some(v) to Ok(v) and None to Err(err()).

Type parameters

Name
E

Parameters

NameTypeDescription
cb() => EThe error to be used.

Returns

Err<E>

Example

const x: Option<string> = some('hello');
assert.equal(x.okOrElse(() => 0), ok('hello'));

Example

const x: Option<string> = none;
assert.equal(x.okOrElse(() => 0), err(0));

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.ok_or_else

Implementation of

IOption.okOrElse

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:77


or

or<R>(option): R

Returns the option if it contains a value, otherwise returns option.

Type parameters

NameType
Rextends Option<any>

Parameters

NameTypeDescription
optionRThe option.

Returns

R

Example

const x: Option<number> = some(2);
const y: Option<number> = none;
assert.equal(x.or(y), some(2));

Example

const x: Option<number> = none;
const y: Option<number> = some(100);
assert.equal(x.or(y), some(100));

Example

const x: Option<number> = some(2);
const y: Option<number> = some(100);
assert.equal(x.or(y), some(2));

Example

const x: Option<number> = none;
const y: Option<number> = none;
assert.equal(x.or(y), none);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.or

Implementation of

IOption.or

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:95


orElse

orElse<R>(cb): R

Calls cb if the result is Ok, otherwise returns the Err value of self.

This function can be used for control flow based on Result values.

Type parameters

NameType
Rextends Option<any>

Parameters

NameTypeDescription
cb() => RThe predicate.

Returns

R

Example

const nobody = (): Option<string> => none;
const vikings = (): Option<string> => some('vikings');

assert.equal(some('barbarians').orElse(vikings), some('barbarians'));
assert.equal(none.orElse(vikings), some('vikings'));
assert.equal(none.orElse(nobody), none);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.or_else

Implementation of

IOption.orElse

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:99


transpose

transpose(): Ok<None>

Transposes an Option of a Result into a Result of an Option.

none will be mapped to ok(none). some(ok(v)) and some(err(e)) will be mapped to ok(some(v)) and err(e).

Returns

Ok<None>

Example

const x: Option<Result<number, Error>> = some(ok(5));
const y: Result<Option<number>, Error> = ok(some(5));
assert.equal(x.transpose(), y);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.transpose

Implementation of

IOption.transpose

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:134


unwrap

unwrap(): never

Returns the contained Some value.

If the value is an Err, it throws an OptionError with the message.

Returns

never

Seealso

unwrapOr

Seealso

unwrapOrElse

Example

const x: Option<string> = some(2);
assert.equal(x.unwrap(), 2);

Example

const x: Option<string> = none;
assert.throws(() => x.unwrap(), {
name: 'OptionError',
message: 'Unwrap failed'
});

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.unwrap

Implementation of

IOption.unwrap

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:27


unwrapOr

unwrapOr<R>(defaultValue): R

Returns the contained Some value or a provided default.

Arguments passed to unwrapOr are eagerly evaluated; if you are passing the result of a function call, it is recommended to use unwrapOrElse, which is lazily evaluated.

Type parameters

Name
R

Parameters

NameType
defaultValueR

Returns

R

Example

assert.equal(some(2).unwrapOr(0), 2);

Example

assert.equal(none.unwrapOr(0), 0);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.unwrap_or

Implementation of

IOption.unwrapOr

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:31


unwrapOrElse

unwrapOrElse<R>(cb): R

Returns the contained Some value or computes it from a closure.

Type parameters

Name
R

Parameters

NameType
cb() => R

Returns

R

Example

assert.equal(some(2).unwrapOrElse(() => 0), 2);

Example

assert.equal(none.unwrapOrElse(() => 0), 0);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.unwrap_or_else

Implementation of

IOption.unwrapOrElse

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:35


unzip

unzip(): [None, None]

Unzips an option containing a tuple of two options.

If self is Some((a, b)) this method returns [Some(a), Some(b)]. Otherwise, [None, None] is returned.

Returns

[None, None]

Example

const x: Option<[number, string]> = some([1, 'hi']);
assert.equal(x.unzip(), [some(1), some('hi')]);

Example

const x: Option<[number, string]> = none;
assert.equal(x.unzip(), [none, none]);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.unzip

Implementation of

IOption.unzip

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:130


xor

xor<T>(option): None

Returns Some if exactly one of self or option is Some, otherwise returns None.

Type parameters

Name
T

Parameters

NameTypeDescription
optionNoneThe option to compare.

Returns

None

Example

const x: Option<number> = some(2);
const y: Option<number> = none;
assert.equal(x.xor(y), some(2));

Example

const x: Option<number> = none;
const y: Option<number> = some(2);
assert.equal(x.xor(y), some(2));

Example

const x: Option<number> = some(2);
const y: Option<number> = some(2);
assert.equal(x.xor(y), none);

Example

const x: Option<number> = none;
const y: Option<number> = none;
assert.equal(x.xor(y), none);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.xor

Implementation of

IOption.xor

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:103

xor<T>(option): Some<T>

Type parameters

Name
T

Parameters

NameType
optionSome<T>

Returns

Some<T>

Implementation of

IOption.xor

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:104

xor<T>(option): None | Some<T>

Type parameters

Name
T

Parameters

NameType
optionOption<T>

Returns

None | Some<T>

Implementation of

IOption.xor

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:105


zip

zip(other): None

Zips self with another Option.

If self is Some(s) and other is Some(o), this method returns Some([s, o]). Otherwise, None is returned.

Parameters

NameTypeDescription
otherOption<any>The option to zip self with.

Returns

None

Example

const x = some(1);
const y = some('hi');
const z = none;

assert.equal(x.zip(y), some([1, 'hi']));
assert.equal(x.zip(z), none);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.zip

Implementation of

IOption.zip

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:120


zipWith

zipWith(other, f): None

Zips self and another Option with function f.

If self is Some(s) and other is Some(o), this method returns Some(f(s, o)). Otherwise, None is returned.

Parameters

NameTypeDescription
otherOption<any>The option to zip self with.
f(s: never, o: never) => anyThe function that computes the returned value.

Returns

None

Example

class Point {
public readonly x: number;
public readonly y: number;

public constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
}

const x = some(17.5);
const y = some(42.7);

assert.equal(x.zipWith(y, (s, o) => new Point(s, o)), some(new Point(17.5, 42.7)));
assert.equal(x.zipWith(none, (s, o) => new Point(s, o)), none);

See

https://doc.rust-lang.org/std/option/enum.Option.html#method.zip_with

Implementation of

IOption.zipWith

Defined in

projects/utilities/packages/result/src/lib/Option/None.ts:125