用途:TyGen 为 Dune 或 Flows 应用中选定的一个版本化 CDF 数据模型生成 TypeScript 类型文件和视图引用,帮助应用获得模型属性类型与静态检查。它不提供运行时客户端、查询辅助或数据模型 CRUD API,仅生成类型。
启用条件:TyGen 属于实验性、需主动选择的 alpha 能力,不属于常规应用工作流。运行或编辑依赖生成结果的代码前,须确认命令环境中已显式设置 COGNITE_ALPHA_ENABLE_TYGEN=true。未启用时应说明其为可选 alpha 能力,继续使用应用现有的原生 @cognite/sdk 类型与 API。不要擅自启用标志、加入仓库或修改部署配置,须获得用户明确同意。
生成方式:针对一个版本化数据模型执行:
npx @cognite/cli@latest tygen generate
--data-model mySpace:myModel:v1
使用应用安装的 CLI,或暴露 tygen generate --help 的本地构建;主分支代码可能尚未进入已发布的 @cognite/cli@latest。在交互式终端中省略 --data-model 可从目标项目选择模型;--interactive 控制浏览器认证,与模型选择器无关。命令使用当前目录的应用配置与环境认证,可配合 --base-url 与 --project 在应用目录外生成;仅在默认输出位置不合适时使用 -o <directory>。数据模型引用未知时可用 cognite api datamodels list 列出,但该命令需要单独启用 COGNITE_ALPHA_ENABLE_API=true。
输出:默认写入 src/generated_types/<externalId>/,每次运行生成 types.ts 与 views.ts,应用代码不应写进该生成目录,生成结果应随应用源码提交。
使用生成结果:从 types.ts 导入模型属性类型,从 views.ts 导入视图引用,将视图引用放入 source 对象传给原生 @cognite/sdk;响应属性先按 space、再按 externalId/version 分组。将运行时数据收窄为生成类型前应校验所用字段。直接关系使用 DirectRelationTo<Target>,保留 CDF 线路格式并增强静态检查。数据模型变更后需重新生成,检查差异并运行类型检查与相关测试;不要手工编辑生成文件。