嗨,我正在尝试为用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参数函数传递给多参数函数。
任何解决此问题的想法都会受到赞赏。
答案 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并调用它,这似乎是实现此目的的方法。