20251121-1124
-
!はnullではないことを表現する型アサーション
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!; -
uuiは16進数である
-
any なんでもできる(危険)
unknown 型が不明だが、勝手に使えない。 -
globalThis global変数として宣言する。 以下prismaのclientを作る例。
import { PrismaClient } from "@prisma/client";
// Next.jsの開発環境(Hot Module Replacement)でPrismaClientのインスタンスが
// 複数作成されるのを防ぐためのシングルトンパターン実装(インスタンスを一つに限定する)
// globalThisを使用してグローバルスコープにPrismaClientインスタンスを保存
// prismaをglobalThis(unknown)にしたものを宣言
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined}
// 既存のPrismaClientインスタンスがあればそれを使用し、
// なければ新しく作成する(シングルトンパターン)
export const prisma = globalForPrisma.prisma ?? new PrismaClient();
// 開発環境では、グローバル変数にPrismaClientインスタンスを保存
// これにより、モジュールが再読み込みされても同じインスタンスを再利用できる
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
- どのマイグレートが使われているか確認するコマンド
npx prisma migrate status