Pages Functions 支持 TypeScript。在 /functions 目录中使用 .ts 扩展名而非 .js 扩展名编写任何文件,即可开始使用 TypeScript。
可以通过运行以下命令添加运行时类型和 Env 类型:
npx wrangler types --path='./functions/types.d.ts'yarn wrangler types --path='./functions/types.d.ts'pnpm 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"]
}
}