В документации: https://bucklescript.github.io/docs/en/object.html есть примеры записи с изменяемыми полями и необязательными полями. Когда я пытаюсь использовать оба, это не получается:
Собирает:
type person = {
mutable age: int;
job: string;
} [@@bs.deriving abstract]
let joe = person ~age:20 ~job:"teacher"
let () = ageSet joe 21
Добавление атрибута [@bs.optional]
:
type person = {
mutable age: int;
job: string [@bs.optional];
} [@@bs.deriving abstract]
let joe = person ~age:20 ~job:"teacher"
let () = ageSet joe 21
Сообщение об ошибке:
Строка 7, 20:
Это выражение имеет тип unit -> person
но ожидалось выражение типа человек
Строка 7 - это строка ageSet
.
Я что-то здесь упускаю?