INTEGRITY Документация

TypeScript

Выполнение wrangler types генерирует типы времени выполнения, включая Service и DurableObjectNamespace типов, каждый из которых принимает один параметр типа для WorkerEntrypoint или DurableObject типы.

Благодаря типам высшего порядка мы автоматически генерируем клиентские типы-заглушки (например, все методы становятся асинхронными).

wrangler types также генерирует типы для env объект. Вы можете передать путь к конфигурационным файлам вызываемого Worker или Durable Object, чтобы сгенерированные типы включали параметры типов для Service и DurableObjectNamespace типы.

Например, если у клиентского Worker есть привязки к Worker в ../sum-worker/ и Durable Object в ../counter/, вам следует сгенерировать типы для клиентского 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.ts
interface Env {
	SUM_SERVICE: Service<import("../sum-worker/src/index").SumService>;
	COUNTER_OBJECT: DurableObjectNamespace<
		import("../counter/src/index").Counter
	>;
}

Теперь типы для метода RPC, например env.SUM_SERVICE.sum метод будет доступен клиентскому Worker.

src/index.ts
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>;