この記事では、ファイルアップロード時に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とReactのuseState活用ガイド
TypeScriptのテンプレートリテラルで変数を簡単に文字列に埋め込む方法
TypeScriptで輝くインデックス型の完全ガイド
TypeScriptの魔法!インクリメント演算子の使い方完全解説
TypeScriptで型安全なコードを書こう!アンビエント宣言と型定義ファイルの使い方
TypeScript のアロー関数でジェネリクスを使いこなす方法
【実践TypeScript】デコレータを使いこなす!効率的なコーディングテクニック解説
TypeScriptアクセス演算子:public, private, protectedの使い方