diff --git a/.changeset/eight-files-joke.md b/.changeset/eight-files-joke.md new file mode 100644 index 00000000000..41db2b2da55 --- /dev/null +++ b/.changeset/eight-files-joke.md @@ -0,0 +1,5 @@ +--- +"@effect/schema": patch +--- + +fix templateLiteral signature (R should be never) diff --git a/packages/schema/src/Schema.ts b/packages/schema/src/Schema.ts index be5e5a6fc54..19607ed4961 100644 --- a/packages/schema/src/Schema.ts +++ b/packages/schema/src/Schema.ts @@ -412,9 +412,9 @@ export type Join<T> = T extends [infer Head, ...infer Tail] * @category constructors * @since 1.0.0 */ -export const templateLiteral = <T extends [Schema<any, any>, ...Array<Schema<any, any>>]>( +export const templateLiteral = <T extends [Schema<never, any>, ...Array<Schema<never, any>>]>( ...[head, ...tail]: T -): Schema<Schema.Context<T[number]>, Join<{ [K in keyof T]: Schema.To<T[K]> }>> => { +): Schema<never, Join<{ [K in keyof T]: Schema.To<T[K]> }>> => { let types: ReadonlyArray<AST.TemplateLiteral | AST.Literal> = getTemplateLiterals(head.ast) for (const span of tail) { types = ReadonlyArray.flatMap(