If you go this route, I think Matt Pocock recommends a default for TState:
export class Derived<
TState = 'Must provide a type argument to Derived',
const TArr extends ReadonlyArray<
Derived<any> | Store<any>
> = ReadonlyArray<any>,
> {
So people know what to do when there are issues