TypeScript山形括弧型アサーション

初見、意味不明だった。

export const Type = {
  ConditionalsExpression: <'conditionalsExpression'>'conditionalsExpression',
  DisjunctionExpression: <'disjunctionExpression'>'disjunctionExpression',
  ConjunctionExpression: <'conjunctionExpression'>'conjunctionExpression',
  TemporalExpression: <'temporalExpression'>'temporalExpression',
  UnaryExpression: <'unaryExpression'>'unaryExpression',
  RelationalExpression: <'relationalExpression'>'relationalExpression',
  ActivityExpression: <'activityExpression'>'activityExpression',
  ImpliesOperator: <'impliesOperator'>'impliesOperator',
  DisjunctionOperator: <'disjunctionOperator'>'disjunctionOperator',
  ConjunctionOperator: <'conjunctionOperator'>'conjunctionOperator',
  UnaryOperator: <'unaryOperator'>'unaryOperator',
  BinaryTemporalOperator: <'binaryTemporalOperator'>'binaryTemporalOperator',
  RelationalOperator: <'relationalOperator'>'relationalOperator',
  ActivityClass: <'activityClass'>'activityClass',
  FormulaPointer: <'formulaPointer'>'formulaPointer',
  ModelVariable: <'modelVariable'>'modelVariable',
  IntegerLiteral: <'integerLiteral'>'integerLiteral',
  TrueLiteral: <'trueLiteral'>'trueLiteral',
  DevelopmentalEndState: <'developmentalEndState'>'developmentalEndState'
}
  • これは、オブジェクトリテラル。
  • 山形括弧は型アサーションで、<T>v で v as T と同じ。
  • 山形括弧内はシングルトン型をインラインで(名付けせずに)書いている。
  • 山形括弧の直後は値(型のインスタンス)としての文字列。