概要
最近のWeb開発では、外部APIとの連携が欠かせない部分となっています。しかし、APIのレスポンスの型が不明確だと、開発中に予期せぬエラーが発生する可能性があります。TypeScriptの型定義を活用することで、APIレスポンスを安全に扱う方法を紹介します。
サンプルコード
interface User {
id: number;
name: string;
email: string;
}
const fetchUserData = async (): Promise<User> => {
const response = await fetch('https://api.example.com/user');
const data = await response.json();
return data as User;
};
// 利用例
const user = await fetchUserData();
console.log(user.id, user.name, user.email);
解説
上記のサンプルコードでは、`User`インターフェースを定義し、APIから取得したデータをその型でキャストすることで、取得したデータの形式を厳密に制御しています。これにより、不適切なデータが入り込むことを防ぎ、開発中に型に関するエラーを事前に検知することができます。
応用例・バリエーション
// 他のAPIエンドポイントとの連携
interface Post {
id: number;
title: string;
content: string;
}
const fetchPostData = async (): Promise<Post> => {
const response = await fetch('https://api.example.com/post');
const data = await response.json();
return data as Post;
};
ベストプラクティス
- APIレスポンスの型を事前に定義しておくことで、開発効率が向上します。
- `any`型の使用を避け、具体的な型定義を行うことで、型安全性を確保します。
- レスポンスのデータが予期せぬ形式を取る可能性も考慮し、適切なエラーハンドリングを行いましょう。
関連技術・参考情報
- [TypeScript Handbook](https://www.typescriptlang.org/docs/handbook/intro.html)
- [Fetching Data with JavaScript](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data)