You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置PureScript REPL使其输出记录类型名称而非字面量?

解决PureScript REPL显示字面量而非类型名称的问题

嘿,这个问题我跟着《PureScript By Example》练习的时候也碰到过!确实是REPL的默认行为导致的差异,不需要复杂配置,调整个小参数就能和书中的效果对齐。

为什么会有这个差异?

PureScript REPL默认会展开显示值的底层结构,对于像Entry这种记录类型的别名,它只会打印原始的记录字面量,不会主动关联显示类型别名的名称。而书中的示例是提前配置了REPL来显示类型名称的,所以看起来不一样。

两种快速解决方法

方法1:启动REPL时直接设置参数

启动REPL的时候,加上--repl-options '{"printTypeNames": true}'参数,比如:

spago repl --repl-options '{"printTypeNames": true}'

这样启动的REPL会自动显示类型别名的名称。

方法2:在运行中的REPL里临时设置

如果已经打开了REPL不想重新启动,直接输入下面的命令:

:set printTypeNames true

回车之后再创建Entry类型的值,就能看到REPL输出Entry { id: ..., title: ... }的格式,和书中的效果完全一致。

额外说明

如果你的Entry是定义为数据构造器(比如data Entry = Entry Int String),默认REPL就会显示构造函数名称,但对于记录类型的类型别名,必须开启上面的设置才能显示类型名称。这个设置在PureScript 0.15及以上版本都有效,要是你用的是更旧版本,可能需要升级或查看对应版本文档调整参数,但主流版本这个方法都适用。

内容的提问来源于stack exchange,提问作者Jonah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:39:39