TypeScript
Running wrangler types
generates runtime types including the Service
and DurableObjectNamespace
types, each of which accepts a single type parameter for the WorkerEntrypoint
or DurableObject
types.
Using higher-order types, we automatically generate client-side stub types (e.g., forcing all methods to be async).
wrangler types
also generates types for the env
object. You can pass in the path to the config files of the Worker or Durable Object being called so that the generated types include the type parameters for the Service
and DurableObjectNamespace
types.
For example, if your client Worker had bindings to a Worker in ../sum-worker/
and a Durable Object in ../counter/
, you should generate types for the client Worker's env
by running:
npx wrangler types -c ./client/wrangler.jsonc -c ../sum-worker/wrangler.jsonc -c ../counter/wrangler.jsonc
yarn wrangler types -c ./client/wrangler.jsonc -c ../sum-worker/wrangler.jsonc -c ../counter/wrangler.jsonc
pnpm wrangler types -c ./client/wrangler.jsonc -c ../sum-worker/wrangler.jsonc -c ../counter/wrangler.jsonc
This will produce a worker-configuration.d.ts
file that includes:
interface Env { SUM_SERVICE: Service<import("../sum-worker/src/index").SumService>; COUNTER_OBJECT: DurableObjectNamespace< import("../counter/src/index").Counter >;}
Now types for RPC method like the env.SUM_SERVICE.sum
method will be exposed to the client 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>;
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark