Значение символа # перед типами js_of_ocaml dom

Что означает знак "#" в следующей подписи?

val insertBefore : #node Js.t -> #node Js.t -> #node Js.t Js.opt -> unit

1 ответ

Решение

Увидеть #-types раздел справочного руководства по OCaml ( http://caml.inria.fr/pub/docs/manual-ocaml/types.html).

Тип функции #node -> t берет объект класса node или его подкласс и возвращает t,

Например,

class c = object method x = 1 end

let g : #c -> int = fun o -> o#x

функция g может взять объект класса c или его подкласс. #c это сокращение от < x : int; ..> следовательно,

let h = (g : < x : int; ...> -> int)

проверено типом.

Другие вопросы по тегам