Во-первых, вам нужно настроить webpack для генерации "библиотеки".
В вашем webpack.config.js ваш output
ваш узел должен выглядеть так:
output: {
path: resolve('./output'),
filename: '[name].js',
libraryTarget: 'var',
library: 'EntryPoint'
},
Затем, чтобы предоставить чистый API для вызова из JavaScript, вы должны использовать интерфейс.
type Sample =
abstract Add : int -> int -> int
abstract Subtract : int -> int -> int
let private add x y = x + y
let api =
{ new Sample with
member __.Add x y = add x y // You can call a local function
member __.Subtract x y = x - y // You can implement the function directly in the interface
}
Затем из JavaScript вы можете сделать что-то подобное:
EntryPoint.api.Add(1, 2)
EntryPoint.api.Subtract(1, 2)