Как скомпилировать код f # fable в функцию JavaScript с несколькими параметрами - PullRequest
0 голосов
/ 20 июня 2019

Привет. Я пытаюсь сделать некоторые элементарные привязки для базы данных, написанной на Java, которую в идеале я хотел бы использовать в F #.Однако я довольно незнаком с javascript.Мне удалось получить привязку для работы с 1 аргументом, однако несколько аргументов приводит к сбою программы из-за попытки вызова функции с 1 аргументом, когда вам нужно 3.

Код:

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 голосов
/ 20 июня 2019

Я понял это, довольно очевидно в ретроспективе.

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 и вызвал его, что, кажется, является способом сделать это.

...