问题标签 [refined]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
134 浏览

scala - 覆盖类型安全配置记录器以在我的 logback 中使用

我的类型安全配置 + logback 配置 + 精炼类型 + 纯配置中有一个问题当我的配置未经验证时,我得到一个原始异常,没有使用 logback appender 格式

例如,我的 logback 看起来像如何解决我的问题?

并且当我有无效的配置时,会出现未格式化的错误,例如

0 投票
1 回答
211 浏览

scala - Scala 中的类型细化但不使用细化

我正在尝试创建一个基于 String 的 HexString 类型,它应该满足“它只包含十六进制数字”的条件,如果可能的话,我想让编译器为我检查它。

一个明显的解决方案是使用细化并编写如下内容:

现在,我并不反对提炼,而是我发现它对于我正在尝试做的事情有点矫枉过正(并且不知道我是否会在其他地方使用它)而且我不愿意导入一个我不确定总体上是否会使用超过一两次的库,并带来可能看起来像魔术的语法(如果不是对我来说,对团队中的其他开发人员来说)。

另一方面,我可以用纯 Scala 代码编写的最好的代码是具有智能构造函数的值类,这一切都很好,对我来说感觉很轻巧,除了我不能进行编译时类型检查。目前看起来像这样:

对于大多数代码库,运行时检查就足够了;但是,我可能需要在某个时候进行编译时检查,而且似乎没有办法实现它,除非使用细化。

如果我可以在不引入太多魔法的情况下使代码尽可能本地化和易于理解,是否可以使用宏并指示编译器针对正则表达式测试赋值的 RHS,并取决于它是否匹配,它会创建 HexString 的实例或吐出编译器错误?

除了我使用 Scala 元编写的 ADT 遍历和转换程序之外,我真的没有使用 Scala 宏的经验。

0 投票
2 回答
479 浏览

scala - Scala:如何强制将语句转换为文字?

我正在尝试其库之一中提供的 scala 的精炼类型功能:

https://github.com/ftomas/refined

下面的代码代表一个简单的案例:

尝试编译时出现以下错误:

应该注意的是,v1 和 v2 都可以在编译时轻松评估并内联,但是 scala 编译器似乎拒绝这样做,并且对于Listtype 似乎没有办法建议这一点。

那么这个功能怎么会有用呢?

0 投票
1 回答
926 浏览

scala - 使用 circe 和 Http4s 时精炼类型的解码器

我正在尝试将精炼类型用于案例类,但无法弄清楚编码器将如何实际工作。对于 json 解析,circe 与 https4s 库一起使用。

错误

最坏的情况是我需要定义自己的解码器并解析它。但是,如果有任何其他可以进一步简化的方法会很好。

0 投票
1 回答
297 浏览

scala - 使用相同谓词进行细化时如何使用 Scala 的 Refined 库确保类型安全

我是 scala 和精炼库的新手,但我正在尝试基于 UUID 创建两种精炼类型。

为此,我这样做了(注意:本例中的 Uuid 来自 eu.timepit.refined.string.Uuid):

但是,这似乎只创建别名,因此没有类型安全性。

因此,如果我有一个类似的构造函数Product(a UuidA, b UuidB) 并继续执行以下操作:

它将正确编译和运行。有没有办法确保不是这种情况?如果一个变量被创建为一种类型,我怎样才能使它只用作那个特定的细化类型,即使类型基本相同?

0 投票
1 回答
311 浏览

scala - 如何转换成精炼型?

我正在使用库https://github.com/ftomas/refined并希望转换java.util.UUID为精炼的Uuid.
如何转换java.util.UUID为精制的Uuid

更新

我有以下 http 路由:

读取函数定义如下:

编译器抱怨:

0 投票
3 回答
307 浏览

scala - Scala circe derivedUnwrapped 值类不适用于缺少的成员

我正在尝试解码一个字符串值类,如果字符串为空,我需要得到一个无,否则是一些。我有以下菊石脚本示例:

0 投票
1 回答
38 浏览

scala - 单例类型作为类型成员

我正在尝试将类型成员定义为单例类型。这是我的尝试:

有没有办法将类型成员设置为单例类型(Boolean(false)在我的情况下)?

0 投票
1 回答
37 浏览

scala - 将类型投影应用于精炼类型

考虑以下示例:

现在我想写一个大致看起来像的函数

不幸的是,这不是一个有效的语法。完全可以写出这样的函数

但我想对T#TT2使其成为精炼类型添加更严格的限制T#TT2{ type TT4 = Int}

有什么解决方法吗?