Qu'est-ce qui se passe quand on déclare un type sans se lier à quoi que ce soit:vide Type
type a_type
type b_type
let a : a_type = (* ? *)
je suis tombé sur ce tout en lisant BuckleScript FFI manual. Le code pour la liaison à un objet JS ressemble à ceci:
type t
external create_date : unit -> t = "Date" [@@bs.new]
let date = create_date()
spécificités de BuckleScript côté, t
est utilisé comme un type valide, qui dans ce cas ressemble à cela agit comme un type polymorphes pour un type de JS externe générique.
Je dois m'excuser d'avoir posé une question aussi rudimentaire, mais cela n'est documenté nulle part. Tous les pointeurs sont appréciés.
Donc c'est essentiellement abstrait le type Js (puisque les objets Js sont dynamiques). – PieOhPah
Habituellement, mais cela peut être n'importe quel type. 'Js.Json.t' par exemple peut être n'importe quel type Json, mais le type abstrait est utile quand on ne sait pas encore (ou ne veut pas savoir), comme ce que l'on obtiendrait en se liant à' JSON. analyser. Vous pouvez aussi faire des choses beaucoup plus folles, comme définir la hiérarchie des types de [DOM] (https://github.com/BuckleScript/bucklescript/blob/master/jscomp/others/dom.mli) – glennsl