TypeScript Inference Issue with Shortened Function
Why can TypeScript infer this:
But fails when I try to shorten the function even more?
class NextIsNotInstalled extends Data.TaggedError('NextIsNotInstalled')<{
cause: unknown;
}> {}
class NextHeaders extends Effect.Service<NextHeaders>()('NextHeaders', {
effect: Effect.tryPromise(() => import('next/headers')).pipe(
Effect.mapError(cause => new NextIsNotInstalled({ cause: cause.error })),
Effect.map(Struct.evolve({
cookies: e => Effect.tryPromise(e),
draftMode: e => Effect.tryPromise(e),
headers: e => Effect.tryPromise(e),
})),
),
}) {}
const asd = Effect.gen(function* () {
const { draftMode } = yield* NextHeaders;
// ^? Effect.Effect<DraftMode, UnknownException, never>
});class NextIsNotInstalled extends Data.TaggedError('NextIsNotInstalled')<{
cause: unknown;
}> {}
class NextHeaders extends Effect.Service<NextHeaders>()('NextHeaders', {
effect: Effect.tryPromise(() => import('next/headers')).pipe(
Effect.mapError(cause => new NextIsNotInstalled({ cause: cause.error })),
Effect.map(Struct.evolve({
cookies: e => Effect.tryPromise(e),
draftMode: e => Effect.tryPromise(e),
headers: e => Effect.tryPromise(e),
})),
),
}) {}
const asd = Effect.gen(function* () {
const { draftMode } = yield* NextHeaders;
// ^? Effect.Effect<DraftMode, UnknownException, never>
});But fails when I try to shorten the function even more?
Effect.map(Struct.evolve({
cookies: Effect.tryPromise,
draftMode: Effect.tryPromise,
headers: Effect.tryPromise,
}))Effect.map(Struct.evolve({
cookies: Effect.tryPromise,
draftMode: Effect.tryPromise,
headers: Effect.tryPromise,
}))