Property ‘client’ does not exist on typeof ‘globalThis’.

Next.js와 Prisma에서 전역 클라이언트를 선언할 때 발생하는 globalThis 타입 오류 해결 기록.

TypeScript, Next.js, React, Frontend

Property ‘client’ does not exist on typeof ‘globalThis’.
Property ‘client’ does not exist on typeof ‘globalThis’.

Next.js에서 ORM으로 Prisma를 사용하여 개발을 진행하며 저장할 때마다 리로드되는 특성상, Prisma의 클라이언트가 여러 번 연결되어 생성되면서 너무 많은 인스턴스가 돌아갈 수 있는데, 해당 현상을 방지하기 위해서 전역으로 Prisma 클라이언트를 관리하려고 global에 선언을 해주려고 했으나, 해당 에러가 발생했다.

해당 에러를 어떻게 해결해야 하나 고민하던 중, 아래의 스택 오버플로 포스트를 보고 해결할 수 있었다.

Recent updated version of `@types/node` is creating an error. The previous version was working fine

위의 포스팅에 따르면 ‘globalThis’에서는 ‘let’ 혹은 ‘const’ 변수가 보이지 않는다고 한다. 그러므로 반드시 ‘var’로 선언되어야함을 이야기하고 있다.

에러가 사라졌다.
에러가 사라졌다.

Property `prisma` doesn't exist on `Global & typeof globalThis` · Issue #824 · nextauthjs/next-auth

위의 깃허브 이슈에서도 같은 에러에 대한 솔루션을 찾을 수 있다.


원문: Medium