From 2c27133d45729667b4871ea4db835589a6b9cba3 Mon Sep 17 00:00:00 2001 From: Alec Larson Date: Thu, 7 Mar 2019 08:39:20 -0500 Subject: [PATCH] fix(ts): Immutable / read-only arrays in TS 3.4+ --- src/immer.d.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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