如何使用变体选项在脚本中键入函数参数?
Posted
技术标签:
【中文标题】如何使用变体选项在脚本中键入函数参数?【英文标题】:How to use a variant option to type function parameters in rescript? 【发布时间】:2021-04-14 08:56:48 【问题描述】:我想做以下事情。但似乎我无法使用变体选项之一键入函数参数。在脚本中实现这一目标的正确方法是什么?
Here is a playground
type subject = Math | History
type person =
| Teacher(firstName: string, subject: subject)
| Student(firstName: string)
let hasSameNameThanTeacher = (
~teacher: Teacher, // syntax error here
~student: Person,
) =>
teacher.firstName == student.firstName
【问题讨论】:
【参考方案1】:Teacher
和 Student
本身不是类型,而是构造 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
【讨论】:
以上是关于如何使用变体选项在脚本中键入函数参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 TypeScript 3+ 中正确键入通用元组剩余参数?
样式化组件 + Typescript:如何键入 css 辅助函数?