diff --git a/src/immer.d.ts b/src/immer.d.ts index d2b30a9b..aa370e94 100644 --- a/src/immer.d.ts +++ b/src/immer.d.ts @@ -53,6 +53,10 @@ export type Produced = Return extends void ? Promise> : FromNothing +type ImmutableArray> = { + [P in Extract]: ReadonlyArray> +}[Extract] + type ImmutableTuple> = { readonly [P in keyof T]: Immutable } @@ -63,7 +67,7 @@ export type Immutable = T extends object ? T : T extends ReadonlyArray ? Array extends T - ? {[P in keyof T]: ReadonlyArray>}[keyof T] + ? ImmutableArray : ImmutableTuple : {readonly [P in keyof T]: Immutable} : T