runtime-type-reconstruction について
io-ts、zod、runtypes などのスキーマライブラリーで実行時データを検証する TypeScript スキルです。同じスキーマから実行時チェックと静的型を得たい開発者向けです。
主な機能
- 01実行時のデータ検証
- 02型安全な JSON 解析
- 03io-ts、zod、runtypes によるスキーマ定義
- 04スキーマから静的型を導出
活用シーン
- 01外部データが想定形状か確認
- 02JSON の安全な解析
- 03バリデーションスキーマの作成
- 04実行時検証と TypeScript 型の整合
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ marius-townhouse/ effective-typescript-skills --skill runtime-type-reconstructionインストール後、Claude Code で/runtime-type-reconstructionを入力して読み込まれたか確認します。
詳細
実行時に型を再構築する方法を知る
概要
TypeScript の型は実行時には消去されますが、実行時のデータが型と一致しているか検証する必要がある場合があります。io-ts、zod、runtypes などのライブラリを使って、実行時検証と静的型の両方を提供するスキーマを定義します。これにより、型が実態と一致することを保証できます。
このスキルを使う場面
- 実行時にデータを検証する
- 型安全性を保ちながら JSON を解析する
- 型に実行時チェックが必要である
- io-ts、zod、runtypes を使用する
- 検証スキーマを構築する
絶対原則
zod や io-ts などの検証ライブラリを使い、単一の信頼できる情報源から実行時検証と TypeScript の型の両方を取得します。
Zod の例
import { z } from 'zod';
// Define schema once
const UserSchema = z.object({
id: z.string(),
name: z.string(),
email: z.string().email(),
age: z.number().optional(),
});
// Get TypeScript type from schema
type User = z.infer<typeof UserSchema>;
// Runtime validation
const result = UserSchema.safeParse(unknownData);
if (result.success) {
// result.data is typed as User
console.log(result.data.name);
} else {
console.error(result.error);
}
参考資料
- Dan Vanderkam 著『Effective TypeScript』第 2 版
- 項目 74:実行時に型を再構築する方法を知る
コメント
Markdown 対応