export-public-types について
公開 API を設計する TypeScript ライブラリの作者向けスキルです。利用者が参照できるよう、公開シグネチャや戻り値に使う型をすべてエクスポートする理由を説明します。
主な機能
- 01公開 API の型エクスポート指針
- 02関数シグネチャ内の型
- 03戻り値に使う型
- 04ライブラリインターフェースの設計
活用シーン
- 01TypeScript ライブラリの公開
- 02公開関数で使う型の提供
- 03再利用可能なコンポーネントのインターフェース設計
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ marius-townhouse/ effective-typescript-skills --skill export-public-typesインストール後、Claude Code で/export-public-typesを入力して読み込まれたか確認します。
詳細
公開 API に登場するすべての型をエクスポートする
概要
ライブラリを公開する場合、ユーザーが公開 API に登場するすべての型を利用できるようにする必要があります。関数が User を返すのに User がエクスポートされていなければ、ユーザーはそれに合わせて独自の変数に型を指定できません。公開関数のシグネチャ、戻り値の型、またはインターフェースに登場するすべての型をエクスポートしてください。
これは、ライブラリで優れた開発者エクスペリエンスを実現するために不可欠です。
このスキルを使用する場面
- TypeScript ライブラリを公開する場合
- 公開関数のシグネチャに型が登場する場合
- ユーザーが型を参照する必要がある場合
- 再利用可能なコンポーネントを構築する場合
- ライブラリのインターフェースを設計する場合
絶対的なルール
公開 API に登場するすべての型をエクスポートしてください。ユーザーがライブラリを効果的に利用するには、これらの型が必要です。
例
// BAD: Internal type not exported
interface User {
id: string;
name: string;
}
export function getUser(id: string): User {
// ...
}
// User can't do:
// import { getUser, User } from 'library'; // Error: User not exported
// const user: User = getUser('123');
// GOOD: Export the type
export interface User {
id: string;
name: string;
}
export function getUser(id: string): User {
// ...
}
// User can now:
// import { getUser, User } from 'library';
// const user: User = getUser('123');
参考資料
- Dan Vanderkam 著『Effective TypeScript』第 2 版
- 項目 67:公開 API に登場するすべての型をエクスポートする
コメント
Markdown 対応