Effect CommunityEC
Effect Communityβ€’2y agoβ€’
13 replies
Kasper

TypeScript Issue with `yield*` and Generator Returning `never`

@Patrick Roza Hm.. I expected yield* a generator that returns never would narrow the same as a function that returns never. I guess this is actually a TS bug!

declare function returnNever(): never;
declare function yieldNever(): Generator<never>;

const wrappedInEffect = Effect.gen(function* () {
  const a = null as number | null;
  // doesn't narrow
  if (a == null) {
    yield* yieldNever();
  }
  // does narrow
  if (a == null) {
    returnNever();
  }
  return a + 1;
});
Was this page helpful?