Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

TypeScript

最終更新 Markdown で表示Agent セットアップ

wrangler types を実行すると、ランタイム型が生成されます。これには ServiceDurableObjectNamespace の型が含まれます。それぞれ、WorkerEntrypoint または DurableObject の型を型パラメーターとして受け取ります。

高階型を使い、クライアント側のスタブ型を自動生成します(例: すべてのメソッドを async にする)。

wrangler typesenv オブジェクトの型も生成します。呼び出す Worker または Durable Object の設定ファイルへのパスを渡すと、生成される型に ServiceDurableObjectNamespace の型パラメーターが含まれます。

たとえば、クライアント Worker が ../sum-worker/ の Worker と ../counter/ の Durable Object にバインディングしている場合、クライアント Worker の env の型は次のコマンドで生成します。

npx wrangler types -c ./client/wrangler.jsonc -c ../sum-worker/wrangler.jsonc -c ../counter/wrangler.jsonc

これにより、次のような内容の worker-configuration.d.ts が生成されます。

worker-configuration.d.tsts
interface Env {
	SUM_SERVICE: Service<import("../sum-worker/src/index").SumService>;
	COUNTER_OBJECT: DurableObjectNamespace<
		import("../counter/src/index").Counter
	>;
}

これで、env.SUM_SERVICE.sum のような RPC メソッドの型がクライアント Worker に公開されます。

src/index.tsts
export default {
	async fetch(req, env, ctx): Promise<Response> {
		const result = await env.SUM_SERVICE.sum(1, 2);
		return new Response(result.toString());
	},
} satisfies ExportedHandler<Env>;

役に立ちましたか?