为什么我不能访问“用户故事”作为一种类型?

问题描述

我有一个(正常工作的)工作流脚本以这个保护函数开始:

var entities = require('@jetbrains/youtrack-scripting-api/entities');

exports.rule = entities.Issue.action({
  title: 'Create default subtasks',command: 'tt-create-subtasks',guard: function(ctx) {
    return ctx.issue.fields.Type.name == 'User Story';
  },

我想我会用类似的东西替换它

return ctx.issue.fields.Type == UserStory;

因此将要求从:

requirements: {
  Type: {
    type: entities.EnumField.fieldType,Task: {},}
}

到:

requirements: {
  Type: {
    type: entities.EnumField.fieldType,UserStory: {
      name: 'User Story'
    }
  }
}

Task 在其他地方以类似的方式使用并且那样有效:

newIssue.fields.Type = ctx.Type.Task;

但是编辑器在 giard 函数中的 UserStory 上给出了红色错误。我在要求中做错了什么吗?

解决方法

如果你声明了你描述的要求

requirements: {
  Type: {
    type: entities.EnumField.fieldType,Task: {},UserStory: {
      name: 'User Story'
    }
  }
}

您可以通过以下方式检查该值:issue.fields.is(ctx.Type,ctx.Type.UserStory)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...