diff --git a/.changeset/violet-onions-film.md b/.changeset/violet-onions-film.md new file mode 100644 index 00000000..9e1503ac --- /dev/null +++ b/.changeset/violet-onions-film.md @@ -0,0 +1,5 @@ +--- +"neverthrow": patch +--- + +Fix `map` and `mapErr` types diff --git a/src/result-async.ts b/src/result-async.ts index 20120d2b..1f7d1438 100644 --- a/src/result-async.ts +++ b/src/result-async.ts @@ -86,14 +86,14 @@ export class ResultAsync implements PromiseLike> { ) as CombineResultsWithAllErrorsArrayAsync } - map(f: (t: T) => A | Promise): ResultAsync { + map(f: (t: T) => A): ResultAsync, E> { return new ResultAsync( this._promise.then(async (res: Result) => { if (res.isErr()) { - return new Err(res.error) + return new Err, E>(res.error) } - return new Ok(await f(res.value)) + return new Ok, E>(await f(res.value)) }), ) } @@ -146,14 +146,14 @@ export class ResultAsync implements PromiseLike> { ) } - mapErr(f: (e: E) => U | Promise): ResultAsync { + mapErr(f: (e: E) => U): ResultAsync> { return new ResultAsync( this._promise.then(async (res: Result) => { if (res.isOk()) { - return new Ok(res.value) + return new Ok>(res.value) } - return new Err(await f(res.error)) + return new Err>(await f(res.error)) }), ) }