编写javascript/tyspript时,我有时会实现一个模式,其中函数返回响应对象(如下所示(或响应" tuple"(仅意味着带有两个项目的数组(,而不是原始价值。这样的东西:
example.js
function getName() {
if (userPressedOk) {
return {status: "OK", name: getName()}
else {
return {status: "FAIL", name: ""}
}
}
example.ts
function getName(): { status: string; jobName: string } {
if (userPressedOk) {
return {status: "OK", name: getName()}
else {
return {status: "FAIL", name: ""}
}
}
这是一个稍微人为的例子,但这是基本思想。我正在尝试模仿我在功能编程语言中看到的风格。此模式有名称吗?
我已经看到它们称为结果对象。
在您说要从的功能语言中,重新确定类型通常称为 Result
或 Either
(尽管通常在失败情况下提供错误消息,而不是默认值(。