defineField() を使用すると、あなたが所有していないオブジェクト ― Person や Company のような標準の Twenty オブジェクトや、他のインストール済みアプリから提供されるオブジェクト ― にフィールドを追加できます。 defineObject 内で宣言されるインラインフィールドと異なり、スタンドアロンフィールドでは、どのオブジェクトを拡張するかを指定するために objectUniversalIdentifier が必要です。
src/fields/company-loyalty-tier.field.ts
主なポイント
-
objectUniversalIdentifierは対象オブジェクトを識別します。 標準の Twenty オブジェクトの場合は、twenty-sdkから定数を import します: -
フィールドを
defineObject()内でインライン定義する 場合、objectUniversalIdentifierは 不要 です — 親オブジェクトから継承されます。 -
defineField()は、defineObject()で作成していないオブジェクトにフィールドを追加する唯一の方法です。 -
ファイルの配置場所は任意です。 慣例としては
src/fields/\<name>.field.tsですが、SDK はsrc/内の任意の場所にあるフィールドを検出します。 -
標準ページレイアウト(例:Task や Company の詳細ページ)にタブを追加するには、
twenty-sdk/defineのSTANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERSとともにdefinePageLayoutTabを使用します。
既存のオブジェクトへのリレーションの追加
リレーションフィールド(例: カスタムオブジェクトを標準のPerson にリンクする)を追加するには、FieldType.RELATION を指定して defineField() を使用します。 パターンはインラインのリレーションと同じですが、objectUniversalIdentifier を明示的に設定します。 双方向のパターンについては、Relations を参照してください。