Result.combine() with Result<void, E>[] is typed as Result<void[], E>, which when explicitly typed is incompatible with @typescript-eslint/no-invalid-void-type
Author: FunctionDJCreated May 18, 2026Updated May 18, 2026
Minimalistic example:
const foo = (): Result<void[], Error> => Result.combine([ok()]);For context, a slightly more real-world-usage example:
declare const doSomething: () => Result<void, Error>;
const foo = (): Result<void[], Error> => Result.combine([1, 2, 3].map(() => doSomething()));Both examples are typed correctly but violate the typescript-eslint rule because I assume the rule considers void[] not to be a useful type and instead usually a code smell.
Source: supermacro/neverthrow