Best Practices for Defining Layer Constructing Functions: Interfaces vs. Type Aliases

Is it more advisable to use interfaces to define your Layer constructing function or to use Effect.Effect.Success<typeof makeServiceXYZ> or would you do something like interface IServiceXYZ extends Effect.Effect.Success<typeof makeServiceXYZ> {} or is it just a matter of Taste? I personally don't like defining interfaces to much because you have to adapt them on changes (just updated to latest platform and there where a lot of type mismatches as announced), on the other hand, well, it makes the contract more explicit. Any recommendations or thoughts?
Was this page helpful?