FaunaDB如何正确导入Document类型?TypeScript无法识别values模块导出
问题原因
你写的解构语法是尝试获取运行时环境中存在的Document变量,但根据给出的类型定义,Document是仅存在于TypeScript类型体系的类型定义,不属于实际导出的JavaScript运行时值,因此无法通过运行时解构的方式获取,编译器自然会识别失败。
正确使用方式
方法1:直接使用模块下的类型
不需要单独提取,直接在类型标注位置调用values.Document即可:
import { values } from "faunadb"; // 示例:定义承载用户数据的Document类型 type UserDoc = values.Document<{ username: string; avatar: string; }>;
方法2:单独提取Document类型复用
如果需要频繁使用该类型,可以单独提取出来全局复用:
// TypeScript 3.8+ 支持的类型导入写法,编译后无残留 import type { values } from "faunadb"; type Document<T = object> = values.Document<T>; // 后续直接使用Document类型即可 const article: Document<{ title: string; content: string }> = await faunaQuery();
异常排查
如果按上述写法仍然无法识别类型,可以先检查两项配置:
- 如果你使用的是旧版本faunadb,需要手动安装对应的类型声明包:
npm i @types/faunadb -D - 检查tsconfig.json中的
moduleResolution配置,建议设置为NodeNext或Bundler适配现代包的导出规则
内容的提问来源于stack exchange,提问作者lmonninger
相关产品推荐
相关产品推荐

