如何使用 Fable (F#) 进行 base64 编码?

How can I base64 encode using Fable (F#)?

我使用Fable.PowerPack的FetchAPI来做基本的认证应用,但是我遇到了麻烦,因为我不能进行base64编码。

比如我写了这么一段代码,

let base64enc str =
    str
    |> Seq.map byte
    |> Array.ofSeq
    |> System.Convert.ToBase64String

但是,出现以下错误。

Error FABLE: Can not find replacement for System.Convert.ToBase64String

有什么办法吗?

我认为 JavaScript btoa function 可以满足您的需求。使其在 Fable 中可用的最简单和最快捷的方法是使用 Emit 属性:

[<Emit("btoa([=10=])")>]
let toBase64String (bytes:byte[]) : string = failwith "JS"

.NET 方法和 JS 函数之间可能存在一些细微差别,在这种情况下,您可能需要自己重新实现它们。

此外,这听起来像是 Fable 可以支持的东西 - .NET 操作的替换通常在 Replacements.fs file 中定义,如果您有兴趣发送拉取请求以添加 [=13] 的映射=] 和其他人,那太棒了!