Skip to content

Support readonly arrays #375

@cahman

Description

@cahman

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/optics-ts/utils.d.ts b/node_modules/optics-ts/utils.d.ts
index 75da246..c769d97 100644
--- a/node_modules/optics-ts/utils.d.ts
+++ b/node_modules/optics-ts/utils.d.ts
@@ -2,7 +2,7 @@ export interface NotAnArrayType<T> {
     readonly _: unique symbol;
     readonly _t: T;
 }
-export type ElemType<A> = IfElse<IsOptional<A>, NotAnArrayType<A>, A extends (infer Item)[] ? Item : NotAnArrayType<A>>;
+export type ElemType<A> = IfElse<IsOptional<A>, NotAnArrayType<A>, A extends (infer Item)[] ? Item : A extends readonly (infer Item)[] ? Item : NotAnArrayType<A>>;
 export type Eq<A, B> = [A, B] extends [B, A] ? true : false;
 export type Simplify<A, B> = Eq<A, B> extends true ? A : B;
 export type IsOptional<A> = Or<ExtendsUndefined<A>, ExtendsNull<A>>;

This issue body was partially generated by patch-package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions