wrangler types を実行すると、ランタイム型が生成されます。これには Service と DurableObjectNamespace の型が含まれます。それぞれ、WorkerEntrypoint または DurableObject の型を型パラメーターとして受け取ります。
高階型を使い、クライアント側のスタブ型を自動生成します(例: すべてのメソッドを async にする)。
wrangler types は env オブジェクトの型も生成します。呼び出す Worker または Durable Object の設定ファイルへのパスを渡すと、生成される型に Service と DurableObjectNamespace の型パラメーターが含まれます。
たとえば、クライアント Worker が ../sum-worker/ の Worker と ../counter/ の Durable Object にバインディングしている場合、クライアント Worker の env の型は次のコマンドで生成します。
npx wrangler types -c ./client/wrangler.jsonc -c ../sum-worker/wrangler.jsonc -c ../counter/wrangler.jsoncyarn wrangler types -c ./client/wrangler.jsonc -c ../sum-worker/wrangler.jsonc -c ../counter/wrangler.jsoncpnpm wrangler types -c ./client/wrangler.jsonc -c ../sum-worker/wrangler.jsonc -c ../counter/wrangler.jsoncこれにより、次のような内容の worker-configuration.d.ts が生成されます。
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 に公開されます。
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>;