機械翻訳について

定数

定数は変数と同様にスコープが設定されますが、代入によって値を変更することはできません。

定数には、次のプロパティと制限があります:

  • 定数のスコープは、ページ、フロー、アプリケーションまたはアクション・チェーンです。 定数の値は、constantsプロパティを使用して記述子で宣言によって定義されます。
  • 定数の値は式にすることができます。 式は、現在のスコープまたはアプリケーション/フロー内で事前に定義されている定数および変数を参照できます。
  • 定数は最初に評価されるため、変数の式は定数を参照できます。
  • 定数の名前は、同じスコープ内の変数では使用できません。
  • 定数はアクション・チェーンで使用できます。
  • 定数は、ページまたはアクション・チェーンへの入力パラメータにすることができます。
  • 定数は組込み型にできません。
  • 定数は、不変の値を保持します(JavaScriptとは対照的)。 たとえば、コンテンツがオブジェクトの場合は、オブジェクトの内容(プロパティなど)を変更できません。
  • 定数は、変更イベントをディスパッチしません。これは、値が変更されることがないためです。
"constants": {
  "myConstant": {
    "type": "string",
    "description": "A useful constant",
    "defaultValue": "This string"
  }
}

タイプ

定数型は、組込み型にはできないことを除き、変数の場合と同じです。

デフォルト値

静的デフォルト値 定数は、(JavaScriptとは異なり)不変の値を保持します。 たとえば、コンテンツがオブジェクトの場合、これはオブジェクトのコンテンツ(プロパティなど)を変更できないことを意味します。 定数の値は、初期化中に拡張でオーバーライドできますが、一度値を設定すると変更できません(次を参照)。

動的デフォルト値 定数のデフォルト値には、変数を含む式を指定できます。 この場合、変数値が変更されると、定数は変化します。 その変更によって、onValueChangedプロパティを使用してリスニングできるvalueChangeイベントがトリガーされます:

"constants": {
  "fullName": {
    "defaultValue": "{{ $variables.firstName + ' ' + $variables.lastName }}",
    "onValueChanged": {
      "chains": [
        {
          "chainId": "fullNameChanged"
        }
      ]
    }
  }
}

入力

定数入力は変数の場合と同じです。

拡張子

変数と同様に、ベース・コンテナのinterfaceセクションに定数が定義されている場合は、ダウンストリームまたは依存拡張によって定数にアクセスできます。

"interface": {
  "constants": {
    "extendableConstant": {
      "type": "string",
      "description": "A constant visible to extensions",
      "defaultValue": "A string"
    }
  }
}

さらに、インタフェース定数でコンテナを拡張する場合、extensionsセクションのdefaultValueプロパティを使用して、拡張コンテナで定数の(ベース)値を変更できます:

"extensions": {
  "constants": {
    "extendableConstant": {
      "defaultValue": "Value from the extension"
    }
  }
}

onValueChangedも上書きできます。 その場合、拡張で定義されたチェーンは、ベース・オブジェクト内のチェーンではなく呼び出されます。