跳转到内容
搜索文档

TypeScript

最后更新 查看 MarkdownAgent 设置

运行 wrangler types 会生成运行时类型,包括 ServiceDurableObjectNamespace 类型,每种类型都接受一个类型参数,分别对应 WorkerEntrypointDurableObject 类型。

利用高阶类型,我们会自动生成客户端 stub 类型(例如,强制所有方法为 async)。

wrangler types 还会为 env 对象生成类型。你可以传入被调用 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>;

这篇文档对您有帮助吗?