defineField() 为你不拥有的对象添加字段——例如像 Person 或 Company 这样的标准 Twenty 对象,或由其他已安装应用提供的对象。 与在 defineObject 中声明的内联字段不同,独立字段需要一个 objectUniversalIdentifier 来指定它们要扩展的对象。
src/fields/company-loyalty-tier.field.ts
关键点
-
objectUniversalIdentifier用于标识目标对象。 对于标准 Twenty 对象,从twenty-sdk导入常量: -
在
defineObject()内联定义字段 时,不需要objectUniversalIdentifier——它会从父对象继承。 -
defineField()是为非通过defineObject()创建的对象添加字段的唯一方式。 -
文件位置由你决定。 约定是使用
src/fields/\<name>.field.ts,但 SDK 会在整个src/中检测字段。 -
要在标准页面布局(例如任务或公司详情页面)中添加一个选项卡,请使用
definePageLayoutTab,并结合来自twenty-sdk/define的STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS。
向现有对象添加关系
要添加关系字段(例如将你的自定义对象链接到标准Person),请将 defineField() 与 FieldType.RELATION 一起使用。 模式与内联关系相同,但需要显式设置 objectUniversalIdentifier。 有关双向模式,请参见关系。