写点什么

Fable:将 F#转译成 JavaScript

  • 2016-08-25
  • 本文字数:726 字

    阅读完需:约 2 分钟

Fable 是一个从 F#到 JavaScript 的转译器。它可以将 F#脚本或者整个 F#项目转换成 JavaScript。Fable 通过一个命令行界面运行,让开发人员既可以编译一个.fsx 脚本,也可以编译一整个项目。它作为一个 npm 包进行分发。

Fable 支持大部分 F#核心库和少量.NET BCL。它支持所有的基本类型,但有一些例外情况。一个值得注意的例外是 async。Async 计算表达式可以正常运行,但RunSynchronously不可用。

用户可以通过创建插件扩展Fable。通常,Fable 插件用于在编译过程中替换外部库调用。用户通过实现 IReplacePlugin接口及其仅有的方法TryReplace创建插件。下面是使用插件替换System.Random的基本代码:

复制代码
type RandomPlugin() =
interface IReplacePlugin with
member x.TryReplace com (info: Fable.ApplyInfo) =
match info.ownerFullName with
| "System.Random" ->
match info.methodName with
| ".ctor" -> failwith "TODO"
| "Next" -> failwith "TODO"
| _ -> None
| _ -> None

插件可以用于处理更复杂的情况,比如转换测试框架。目前, NUnit 支持就是通过一个插件将 NUnit 测试转换成 Mocha 测试。

用户还可以使用 Fable 通过 React Native创建移动应用 React Native 可以将 React 应用程序编译成 Android 和 iOS 应用。 Fable 插件提供了到 React Native 的绑定。一定要注意,通过 React Native 支持移动应用是一个试验性特性,会经常变化。

Fable 是一个开源项目,托管在GitHub 上。Fable 官方网站提供了文档代码示例。举一个在成熟项目中使用Fable 的例子。 Ionide 是一个用于在 VsCode 和 Atom 中编辑 F#的插件,它自 2.0 版本开始就使用了 Fable。

查看英文原文 Transcompiling F# to JavaScript with Fable

2016-08-25 19:002260
用户头像

发布了 1008 篇内容, 共 419.6 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

AI+高等教育,和鲸Heywhale上线从通识到“学科+AI”的解决方案2.0

ModelWhale

人工智能 数字化教育 智慧教育

JEB Pro v5.29 (macOS, Linux, Windows) - 逆向工程平台

sysin

JEB

网易游戏 Flink 云原生实践

Apache Flink

大数据 flink 云原生

HyperWorks汽车B-柱网格变形

智造软件

CAE Hypermesh hyperworks

【AI聊天机器人】轻松上手,快速配置实战指南

JEECG低代码

AI大模型 AI应用 AIGC AI聊天

Elasticsearch Enterprise 8.18 (macOS, Linux, Windows) - 分布式搜索和分析引擎

sysin

elasticsearch

Elasticsearch Enterprise 9.0 (macOS, Linux, Windows) - 分布式搜索和分析引擎

sysin

elasticsearch

YashanDB 知识库|yasql 报 YASQL-00021:单行字符超 4000.如何绕过限制?

数据库砖家

数据库

Nexpose 8.6.0 for Linux & Windows - 漏洞扫描

sysin

CST如何在三维里截取部分区域进行仿真

思茂信息

cst CST软件 CST Studio Suite

MCP 如何构建企业级数据分析 Agent?

阿里巴巴云原生

阿里云 云原生 函数计算

PET口语APP的开发流程

北京木奇移动技术有限公司

软件外包公司 AI口语学习 PET考试

迭代器失效:99%的C++程序员都会踩的坑 !

电子尖叫食人鱼

c++

图片导航组件 | 纯血鸿蒙组件库AUI

华哥的全栈次元舱

HarmonyOS 开发语言 纯血鸿蒙 ArkUI / eTS 鸿蒙组件库AUI

“工作区”升级为“磁盘”、数据集统计概览优化|ModelWhale 版本更新

ModelWhale

大模型

教育部加快推进教育数字化,2024年来国家级人工智能教育政策合集

ModelWhale

YashanDB|如何优化跑批性能?这些参数配置值得关注

数据库砖家

数据库

Head First LLM-开篇

好名字可以让你的朋友更容易记住你

#大模型

PET口语练习APP的技术框架

北京木奇移动技术有限公司

软件外包公司 AI口语练习 PET考试

PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析

sysin

Cyber Triage 3.14 for Windows - 面向事件响应的数字取证软件

sysin

YashanDB 知识库|UNDO 表空间一直在涨?查原因 + 给方案,一文说明白

数据库砖家

数据库

DNS DDoS攻击:网络世界中的“洪水猛兽”

国科云

数智焕新进行时,用友BIP助力企业跨越周期、迈向高质量发展

用友BIP

Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件

sysin

dell

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS NVMe 驱动特殊定制版 (集成驱动版)

sysin

esxi

苏州企业等保快速通关小秘诀看这里!

行云管家

等保 等保测评

YashanDB 知识库|MySQL 的 GROUP BY 语句在崖山报错?问题出在这个标准!

数据库砖家

数据库

YashanDB 知识库|Oracle 里的大整数插入正常,换到崖山却报错?问题可能出在字段类型上

数据库砖家

数据库

排行榜的5种实现方案!

不在线第一只蜗牛

架构 开发

YashanDB 共享集群实测报告:性能、稳定性、架构三重验证,细节见真章

数据库砖家

数据库

Fable:将F#转译成JavaScript_.NET_Pierre-Luc Maheu_InfoQ精选文章