写点什么

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

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

关注

评论

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

云起无垠参编的《软件物料清单(SBOM)发展洞察报告》正式发布

云起无垠

站群服务器租用:为您的多站点网络提供支持

一只扑棱蛾子

站群服务器

【华秋干货铺】软硬结合板的阻抗计算,你会吗?

华秋电子

PCB

处理更多数据,大幅降低成本!Milvus MMap 启示录

Zilliz

Mmap Milvus Zilliz 向量数据库 Milvus2.3

干货 | Elasticsearch Java 客户端演进历史和选型指南

腾讯云大数据

ES

SpringBoot拦截器和动态代理有什么区别?

王磊

Java Java面试题

基于Web的智慧污水厂2D组态系统

2D3D前端可视化开发

组态软件 智慧水务 智慧污水处理 污水厂组态图 污水厂监控系统

Red Giant Magic Bullet Suite for Mac(红巨人调色降噪插件合集下载) v2024.0.0永久激活版

mac

苹果mac Windows软件 Red Giant Magic Bullet 视频后期处理软件

使用br工具备份到local的一些操作

TiDB 社区干货传送门

迁移 备份 & 恢复 6.x 实践

TiDB Serverless Branching:通过数据库分支简化应用开发流程

TiDB 社区干货传送门

Axeos 跨域解决指南,让你的接口请求畅通无阻

Liam

前端 后端 前端开发 跨域 axios

反驳来了!放弃TypeScript?说明你无知!

树上有只程序猿

typescript 代码质量 js

基于YOLOv2和传感器的多功能门禁系统

timerring

YOLOv2

达梦数据库接入案例—基于EntityFrameworkCore 6.x

为自己带盐

.net core 达梦 EFCore

在Mac上浏览Android设备文件:MacDroid pro最新中文版

胖墩儿不胖y

Mac软件 传输文件 文件传输工具

为什么越来越多的人选择PostgreSQL,放弃了MySQL

高端章鱼哥

MySQL postgresql

秒合约竞猜游戏app系统开发定制源代码部署

开发微hkkf5566

文心一言 VS 讯飞星火 VS chatgpt (93)-- 算法导论9.2 1题

福大大架构师每日一题

福大大架构师每日一题

生成式AI的发展与内容质量及安全性的挑战

百度开发者中心

#人工智能 生成式AI 文心一言 千帆大模型平台

创新力量重塑生产力

百度开发者中心

文学 #人工智能 生成式AI 文心一言

RTE 领域近期词云统计发布;谷歌开始新一轮「瘦身」计划;使用ChatGPT之后智力提高 50%丨RTE开发者日报 Vol.50

声网

文字图像转换的创新技术

百度开发者中心

#人工智能 生成式AI 千帆大模型平台

HarmonyOS应用开发Web组件基本属性应用和事件

HarmonyOS开发者

HarmonyOS

Arbitrum公链系统开发丨ARB链代币质押挖矿系统开发

l8l259l3365

Pyth

机器学习——决策树模型

小魏写代码

揭秘 ChunJun:如何实现 e2e&session 日志隔离

袋鼠云数栈

大数据 开源

AI和安全性:网络安全的挑战与机会

测吧(北京)科技有限公司

测试

小度携手可口可乐,AIGC成就未来3000年时空畅想

新消费日报

使用Docker构建轻量级Linux容器

互联网工科生

Docker 容器

创新生产力的新引擎

百度开发者中心

#人工智能 生成式AI 文心一言

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