diff --git a/library/src/methods/flatten/flatten.test-d.ts b/library/src/methods/flatten/flatten.test-d.ts index 848e0358b..b2b7b6d29 100644 --- a/library/src/methods/flatten/flatten.test-d.ts +++ b/library/src/methods/flatten/flatten.test-d.ts @@ -80,4 +80,15 @@ describe('flatten', () => { readonly other?: [string, ...string[]]; }>(); }); + + test('should accept readonly list of errors', () => { + const readonlyIssues = issues as Readonly; + expectTypeOf(flatten(readonlyIssues)).toEqualTypeOf<{ + readonly root?: [string, ...string[]]; + readonly nested?: Readonly< + Partial> + >; + readonly other?: [string, ...string[]]; + }>(); + }); }); diff --git a/library/src/methods/flatten/flatten.ts b/library/src/methods/flatten/flatten.ts index 891753145..1dad5a61d 100644 --- a/library/src/methods/flatten/flatten.ts +++ b/library/src/methods/flatten/flatten.ts @@ -63,7 +63,7 @@ export type FlatErrors< * @returns A flat error object. */ export function flatten( - issues: [BaseIssue, ...BaseIssue[]] + issues: readonly [BaseIssue, ...BaseIssue[]] ): FlatErrors; /** @@ -77,11 +77,11 @@ export function flatten< TSchema extends | BaseSchema> | BaseSchemaAsync>, ->(issues: [InferIssue, ...InferIssue[]]): FlatErrors; +>(issues: readonly [InferIssue, ...InferIssue[]]): FlatErrors; // @__NO_SIDE_EFFECTS__ export function flatten( - issues: [BaseIssue, ...BaseIssue[]] + issues: readonly [BaseIssue, ...BaseIssue[]] ): FlatErrors { // Create flat errors object const flatErrors: FlatErrors = {};