(F: Chainable<F>)
| 61 | * @since 0.24.0 |
| 62 | */ |
| 63 | export const bind = <F extends TypeLambda>(F: Chainable<F>): { |
| 64 | <N extends string, A extends object, R2, O2, E2, B>( |
| 65 | name: Exclude<N, keyof A>, |
| 66 | f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B> |
| 67 | ): <R1, O1, E1>( |
| 68 | self: Kind<F, R1, O1, E1, A> |
| 69 | ) => Kind<F, R1 & R2, O1 | O2, E1 | E2, { [K in keyof A | N]: K extends keyof A ? A[K] : B }> |
| 70 | <R1, O1, E1, A extends object, N extends string, R2, O2, E2, B>( |
| 71 | self: Kind<F, R1, O1, E1, A>, |
| 72 | name: Exclude<N, keyof A>, |
| 73 | f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B> |
| 74 | ): Kind<F, R1 & R2, O1 | O2, E1 | E2, { [K in keyof A | N]: K extends keyof A ? A[K] : B }> |
| 75 | } => |
| 76 | dual(3, <R1, O1, E1, A, N extends string, R2, O2, E2, B>( |
| 77 | self: Kind<F, R1, O1, E1, A>, |
| 78 | name: Exclude<N, keyof A>, |
| 79 | f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B> |
| 80 | ): Kind<F, R1 & R2, O1 | O2, E1 | E2, { [K in keyof A | N]: K extends keyof A ? A[K] : B }> => |
| 81 | F.flatMap(self, (a) => F.map(f(a), (b) => Object.assign({}, a, { [name]: b }) as any))) |
no test coverage detected