我有一个组合 ReScript 和 TypeScript 项目。我想用来gentype
公开 TypeScript 友好的对象。Gentype 适用于字符串、布尔值、记录和其他基本对象,没有任何麻烦。如何使用TypeScript 中的list
和char
其他特定于 ReScript 的类型?
有一个垫片功能,但我不知道该怎么做。我会假设标准带库有内置垫片,但找不到它们。
我计划在 Rescript 中进行大部分计算和繁重的工作。所以当信息被发送到 TypeScript 时,我可能只是在消费数据,而不是修改它。这可能是遍历列表以显示非 Rescript React 项目中的内容。我不打算操纵数据。
一种选择是在导出结果之前将列表转换为 ReScript 中的数组。因此,任何时候我想使用来自 TypeScript 的信息,我都会在 ReScript 中创建一个函数和/或类型,它只有布尔、数字、字符串、数组和对象。我可以创建一个“互操作”模块,其中包含我想从 TypeScript 使用或使用的所有东西。这在 ReScript 和 TypeScript 世界之间提供了一个清晰的分离,并且很容易让我理解,但似乎效率有点低(比如将所有列表转换为数组)和额外的工作。
另一方面,如果从 TypeScript 中使用诸如 list 和 map 之类的 Belt 对象很麻烦,即使使用了 shims,那么无论如何我最好还是创建我的“互操作”模块。
在 TypeScript 中使用 list、map、char 和其他 ReScript 特定对象的推荐/最简单/最佳方式是什么?是否有针对 Belt 标准库的友好 Typescript 定义,即使我不使用 ReScript 也可以使用?
===
一个附加说明。我有尝试从 C# 使用 F#(功能)的经验。这很痛苦。在那个环境中对我来说最好的解决方案是在 F# 端创建一个接口,该接口在不使用 F# 本机对象的 C# 端很容易使用。