如何将f#寓言代码编译为多参数javascript函数

时间:2019-06-20 18:32:54

标签: javascript f# transpiler fable

嗨,我正在尝试为用Java编写的数据库建立基本的绑定,理想情况下,我想实际在F#中使用它。但是,我对JavaScript并不熟悉。我已经设法使绑定可以使用1个参数,但是由于在需要3时尝试使用1个参数调用函数,因此多个参数使程序崩溃。

代码:

type IRNCouchDBs =
    abstract member Add : string*string*((string)->string)

[<Import("CouchDB", from = "NativeModules")>]
let couchDB : IRNCouchDBs = jsNative

在这种情况下,添加是在Java中进行的,

@ReactMethod 
public void Add (String name, String type, Callback cb)

如果我像这样调用f#代码

 let str (s : string)  =  s //just a test function
couchDB.Add ("name", "type", (str "test"))

然后发生错误,抱怨我试图将1参数函数传递给多参数函数。

任何解决此问题的想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

我想出来了,回想起来很明显。

type IRNCouchDBs =
    abstract member Add : Func<string, string, ((string*string->string)), unit>

[<Import("CouchDB", from = "NativeModules")>]
let couchDB : IRNCouchDBs = jsNative


let f' = (fun (x :string,y ) -> (x + y))
couchDB.Add.Invoke (fish.FishType,fish.Name, f')

使用Func并调用它,这似乎是实现此目的的方法。