TypeScript v2 函数上手
TypeScript v2 是新一代函数写法:新的 OSDK、更贴近 Node 生态、支持本地 SDK。这篇按建仓库→写函数→预览→发布→使用走一遍。
https://www.palantir.com/docs/foundry/functions/typescript-v2-getting-started/
原始标题:TypeScript v2 > Getting started
先记住这几条
写在前面
TypeScript v2 让用户能够利用相比 TypeScript v1 的多项关键改进,包括 Node.js 运行时与一流的 OSDK 支持。阅读下面各节开始上手。
第 1 步 · 创建 v2 仓库
第 1 步 · 创建 v2 仓库
导航到你选择的项目,选择 + New > Repository(+ 新建 > 仓库) 创建一个新的代码仓库。选择 TypeScript v2 functions 模板来初始化你的仓库。

仓库创建完成后,导航到 typescript-functions/src/functions/helloWorld.ts 文件。
在向函数导入 Ontology 类型之前,请通过 Resource imports(资源导入) 侧边栏添加你的对象类型和链接类型,然后生成并安装 Ontology SDK。这些步骤参见生成 Ontology SDK。
第 2 步 · 写一个函数
第 2 步 · 写一个函数
要编写新函数,请在仓库的 typescript-functions/src/functions 目录下新建一个文件,并取一个有描述性的名字,例如 helloWorld.ts。使用 export default 编写函数,Foundry 才能检测到它。
export default function helloWorld(): string {
return "Hello World!";
}要使函数能被发布到 Foundry,必须满足以下条件:
- 在
typescript-functions/src/functions目录下的.ts文件中定义函数。在该目录中,你也可以把相关函数分组放在子目录里。 - 文件名必须与函数名一致。例如,要发布一个名为
myFunction的函数,它必须定义在该目录下的myFunction.ts文件中。 - 该 TypeScript 函数必须是文件的默认导出(default export)。
- 函数的输入与输出类型必须遵循类型参考中支持的 func 类型。
函数的文件路径用于唯一标识从中发布的那个函数,因此修改文件路径会导致发布出一个新函数。
第 3 步 · 实时预览
第 3 步 · 实时预览
要在实时预览中测试函数,请打开 Functions(函数) 助手并选择 Live preview(实时预览)。选择你的函数并点击 Run(运行) 执行。

第 4 步 · 提交并发布
第 4 步 · 提交并发布
选择窗口右上角的 Commit(提交),将改动提交到仓库的 master 分支。要查看函数的检查项,请打开页面顶部的 Checks(检查) 标签页。在这里提交后,你应该能看到一个正在运行的检查项。

提交工作后,你会看到 Tag version(打标签版本) 选项。这将发布仓库中的所有函数。

选择 Tag version,基于 master 分支打一个发布标签。根据改动的范围设置标签名称,然后选择 Tag and release(打标签并发布)。

要查看函数打标签与发布时的进度,请选择 View(查看) 弹窗,或导航到 Tags(标签) 标签页。一旦 Step 2: Release(第 2 步:发布) 完成,选择已发布的函数即可在 function registry 中查看它们。
在函数发布后,权限传播期间,Workshop 或 function registry 中可能无法立即按名称搜索到这些函数。

第 5 步 · 使用它
第 5 步 · 使用它
当你所打标签的检查项通过后,导航回 Code Repositories(代码仓库) 中的 Code(代码) 标签页,选择 Functions(函数) 助手。你现在应该能在 Published(已发布) 分区下看到你的函数。选择并运行这个新函数:

下一步
下一步
创建并发布一个基础函数后,可以探索以下能力:
- Ontology SDK: 要查询或编辑 Ontology 对象,先导入你需要的对象与链接类型,然后生成并安装 Ontology SDK。
- Ontology 编辑: 了解如何在函数中创建、更新和删除对象。
- 暂存写入 \[Beta]: 对于需要「写后可读」保障或嵌套函数调用的编辑函数,参见暂存写入。
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「TypeScript v2 函数上手」,读者最常问的几个问题。