t3-env icon indicating copy to clipboard operation
t3-env copied to clipboard

"Type error: Type 'k' cannot be used to index type" with skipLibCheck: false

Open elliottsj opened this issue 1 year ago • 2 comments

Unsure if this is a zod issue or a t3-env issue.

Check out latest commit bfa7645d15c9b11947d824343865f470aa6ef5c5

pnpm install
pnpm build
pnpm build --filter=@examples/nextjs
# observe build passes

Change examples/nextjs/tsconfig.json: set "skipLibCheck": false.

pnpm build --filter=@examples/nextjs
@examples/nextjs:build: ../../packages/nextjs/dist/index.d.ts:28:371
@examples/nextjs:build: Type error: Type 'k' cannot be used to index type 'addQuestionMarks<{ [k_1 in keyof TServer]: TServer[k_1]["_output"]; }>'.
@examples/nextjs:build:
@examples/nextjs:build:   26 |     runtimeEnv: StrictOptions<ClientPrefix, TServer, TClient>["runtimeEnvStrict"];
@examples/nextjs:build:   27 | }
@examples/nextjs:build: > 28 | declare function createEnv<TServer extends Record<string, ZodType> = NonNullable<unknown>, TClient extends Record<`${ClientPrefix}${string}`, ZodType> = NonNullable<unknown>>({ runtimeEnv, ...opts }: Options<TServer, TClient>): (zod.objectUtil.addQuestionMarks<{ [k_1 in keyof TServer]: TServer[k_1]["_output"]; }> extends infer T_3 extends object ? { [k in keyof T_3]: zod.objectUtil.addQuestionMarks<{ [k_1 in keyof TServer]: TServer[k_1]["_output"]; }>[k]; } : never) & (zod.objectUtil.addQuestionMarks<{ [k_2 in keyof TClient]: TClient[k_2]["_output"]; }> extends infer T_4 extends object ? { [k_1 in keyof T_4]: zod.objectUtil.addQuestionMarks<{ [k_2 in keyof TClient]: TClient[k_2]["_output"]; }>[k_1]; } : never) extends infer T ? { [P in keyof T]: ((zod.objectUtil.addQuestionMarks<{ [k_1 in keyof TServer]: TServer[k_1]["_output"]; }> extends infer T_1 extends object ? { [k in keyof T_1]: zod.objectUtil.addQuestionMarks<{ [k_1 in keyof TServer]: TServer[k_1]["_output"]; }>[k]; } : never) & (zod.objectUtil.addQuestionMarks<{ [k_2 in keyof TClient]: TClient[k_2]["_output"]; }> extends infer T_2 extends object ? { [k_1 in keyof T_2]: zod.objectUtil.addQuestionMarks<{ [k_2 in keyof TClient]: TClient[k_2]["_output"]; }>[k_1]; } : never))[P]; } : never;
@examples/nextjs:build:      |                                                                                                                                                                                                                                                                                                                                                                                   ^
@examples/nextjs:build:   29 |
@examples/nextjs:build:   30 | export { createEnv };
@examples/nextjs:build:   31 |
@examples/nextjs:build:  ELIFECYCLE  Command failed with exit code 1.

elliottsj avatar May 06 '23 18:05 elliottsj