代码之家  ›  专栏  ›  技术社区  ›  Abraham P

bucklescript method definition=字符串

  •  -1
  • Abraham P  · 技术社区  · 8 年前

    几乎所有bucklescript示例都有如下语法:

    [@bs.send.pipe : t('options)] external parse : array(string) => 'options = "parse";
    

    或者像这样:

    [@bs.module "express"] external make : (string, options) => t = "static";
    

    https://medium.com/@Hehk/binding-a-library-in-reasonml-e33b6a58b1b3

    type t;
    
    [@bs.module] external commander : t = "";
    

    最后一个是什么 = string

    2 回复  |  直到 8 年前
        1
  •  2
  •   glennsl Namudon'tdie    8 年前

    t 是没有定义的类型,称为抽象类型。通常在接口中使用它来隐藏实现,这样在不使用特定关联函数的情况下无法访问和操作它,但实际上它根本不需要任何实现。这对于外语互操作特别有用,因为实现是用另一种语言实现的。

    = 是“foreign”函数的名称,因此在本例中是JavaScript标识符。这个 make require('express').static(...) 而不是 require('express').make(...) .

    这个 parse commander

        2
  •  0
  •   John Paul Ada    8 年前

    = string 取决于上下文,上下文由 [@bs.blabla] 在外部定义之前。

    [@bs.module "express"] external make : (string, options) => t = "static";
    

    我们正在创建一个 make 函数来自 static “express”模块的方法,因为我们使用 [@bs.module "express"] .

    https://bucklescript.github.io/docs/en/intro-to-external.html