如何使用变体选项在 rescript 中键入函数参数?

时间:2021-04-14 08:56:48

标签: types variant rescript

我想做以下事情。但似乎我无法使用变体选项之一键入函数参数。在 rescript 中实现这一目标的正确方法是什么?

Here is a playground

chart
    .render(document.getElementById('trust_chart'))
    .catch(() => window.alert('Chart failed to initialise')); 
}

1 个答案:

答案 0 :(得分:1)

TeacherStudent 本身不是类型,而是构造 person 类型值的构造函数。如果您希望它们具有不同的类型,则必须使其明确:

module University = {
  type subject = Math | History

  type teacher = {firstName: string, subject: subject}
  type student = {firstName: string}
  type person =
    | Teacher(teacher)
    | Student(student)
  
  let hasSameNameThanTeacher = (
    ~teacher: teacher,
    ~student: student,
  ) => {
    teacher.firstName == student.firstName
  }
}