js_of_ocaml dom类型前面#字符的含义

时间:2015-10-09 11:41:13

标签: ocaml js-of-ocaml

'#'是什么意思?在以下签名?

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

1 个答案:

答案 0 :(得分:5)

请参阅OCaml参考手册的#-types部分(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)

是类型检查。