50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:002416
用户头像

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

关注

评论

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

DDD-5-统一语言

南山

领域驱动设计 DDD 领域驱动 统一语言

可图大模型再进化,实现AI试衣自由!

快手技术

AI技术

SD-WAN在教育行业的应用与优势解析

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

走出舒适圈,将自动化智能技术作为财务增长的催化剂

智达方通

数字化转型 企业管理 全面预算管理 企业成长

如何利用淘宝商品评论API返回值提升商品转化率

技术冰糖葫芦

API Explorer API 测试 API 策略 pinduoduo API

个人博客导航如何创建更有个性化

博客趣

个人博客 博科趣 m.bokequ.com 博客导航

厚积薄发,极石汽车加速前进

极客天地

穿透人效本质,盖雅工场发布人效数字化套件

ToB行业头条

湖南贝特新能源科技:巧用草料二维码,实现设备管理数字化

草料二维码

DDD-4-领域建模

南山

领域驱动设计 DDD 领域建模 领域模型

SD-WAN供应商有哪些类型?怎么选择?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

MCtalk·CEO对话×每刻科技:经济挑战期,企业如何将“好钢”用在“刀刃”上?

ToB行业头条

比特币质押项目Babylon引发链上Gas费大战:散户转向第三方Restaking协议的可能性

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 公链开发

万界星空科技QMS系统:重塑质量管理新纪元

万界星空科技

质量管理 万界星空科技 QMS 质量管理系统 生产质量管理

线下参会报名丨智源数据与行业应用 Workshop 第二期

智源研究院

“大模型”热潮下,企业数智化如何落地?

人称T客

亚信安慧AntDB数据库ACP认证培训

亚信AntDB数据库

AntDB

NFTScan | 08.19~08.25 NFT 市场热点汇总

NFT Research

NFT NFTScan

如何区分住宅代理与数据中心代理?

IPIDEA全球HTTP

《AIGC应用实战营》课程学习总结

江流

使用 SpanMetrics Connector 将 OpenTelemetry 跟踪转换为指标

巴辉特

可观测性 OpenTelemetry

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