この記事では、ファイルアップロード時にTypeScriptとZodのバリデーションライブラリを使用してMIMEファイルタイプをバリデーションする方法を紹介します。
まず、Zodについて説明した後、具体的なバリデーション方法を解説します。
Zodは、TypeScriptでデータ検証を行うためのスキーマ検証ライブラリです。TypeScriptの型システムを利用して、スキーマ定義とバリデーションを同時に行うことができます。これにより、コードの品質と堅牢性を向上させることができます。
まず、Zodをプロジェクトにインストールします。
npm install zod
次に、以下のコードを使用して、ファイルアップロード時にMIMEタイプをバリデーションするスキーマを作成します。
import { z } from "zod";
const allowedMimeTypes = ["image/jpeg", "image/png"];
const fileSchema = z.custom<File>((file) => {
if (!(file instanceof File)) {
return false;
}
return allowedMimeTypes.includes(file.type);
}, {
message: "アップロードしたファイルタイプが許可されていません",
});
const validateFile = (file: File): boolean => {
const validationResult = fileSchema.safeParse(file);
if (!validationResult.success) {
console.error(validationResult.error);
return false;
}
return true;
};
このコードでは、許可されたMIMEタイプを allowedMimeTypes
配列に定義しています。fileSchemaは、Zodの
Custom schemas のFileを使って定義されており、Fileオブジェクトが適切なMIMEタイプを持っているかどうかをチェックします。
この記事では、TypeScriptとZodライブラリを使ってファイルアップロード時にMIMEタイプをバリデーションする方法を紹介しました。
Zodを使用することで、型安全なバリデーションを実現し、アプリケーションの品質と堅牢性を向上させることができます。ファイルアップロード機能を持つアプリケーションを開発する際に、この方法を活用して、アップロードされるファイルのMIMEタイプを制限しましょう!
TypeScriptの短絡評価の使い方「&&」「||」「??」の解説
TypeScriptのタイマー関数setTimeoutとsetIntervalの使い方
TypeScriptの多次元配列の使い方についてわかりやすく解説
TypeScriptでのタプルの使い方と実践テクニックを解説
TypeScriptのimport typeをわかりやすく解説
TypeScriptの配列やオブジェクトのソート完全ガイド
TypeScriptコメントアウトの使い方 完全ガイド
TypeScriptのオブジェクトとプロパティの存在チェック完全ガイド
TypeScriptで即時関数を使う方法を解説!基本から実践的な使い方まで