js_of_ocaml dom 类型前#字符的含义

Meaning of # character in front of js_of_ocaml dom types

下面签名中的'#'是什么意思?

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

请参阅 OCaml 参考手册的 #-types 部分 (http://caml.inria.fr/pub/docs/manual-ocaml/types.html)。

函数类型 #node -> t 接受 class node 或其子对象 class 和 returns t.

例如,

class c = object method x = 1 end

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

函数g可以获取classc或其子class的对象。 #c< x : int; ..> 的缩写,因此,

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

类型检查。