跳转到内容
搜索文档

TypeScript

最后更新 查看 MarkdownAgent 设置

Pages Functions 支持 TypeScript。在 /functions 目录中使用 .ts 扩展名而非 .js 扩展名编写任何文件,即可开始使用 TypeScript。

可以通过运行以下命令添加运行时类型和 Env 类型:

npx wrangler types --path='./functions/types.d.ts'

然后通过创建 functions/tsconfig.json 文件来配置类型:

{
	"compilerOptions": {
		"target": "esnext",
		"module": "esnext",
		"lib": ["esnext"],
		"types": ["./types.d.ts"]
	}
}

更多详情请参阅 wrangler types 命令文档

如果项目根目录已有 tsconfig.json,可能需要显式排除 /functions 目录以避免冲突。要排除 /functions 目录:

{
	"include": ["src/**/*"],
	"exclude": ["functions/**/*"],
	"compilerOptions": {}
}

Pages Functions 可以使用 PagesFunction 类型进行类型标注。此类型接受 Env 参数。Env 类型应由 wrangler types 生成,可在 types.d.ts 顶部找到。

或者,可以手动定义 Env 类型。例如:

interface Env {
	KV: KVNamespace;
}

export const onRequest: PagesFunction<Env> = async (context) => {
	const value = await context.env.KV.get("example");
	return new Response(value);
};

如果使用 nodejs_compat,请确保已安装 @types/node 并更新了 tsconfig.json

{
	"compilerOptions": {
		"target": "esnext",
		"module": "esnext",
		"lib": ["esnext"],
		"types": ["./types.d.ts", "node"]
	}
}

这篇文档对您有帮助吗?