首页 > 解决方案 > 在 JavaScript 中处理可选返回值的最佳方法是什么?

问题描述

我正在尝试用 JavaScript 编写一个返回值或 false 的函数。有像 Scala 那样的某种“选项”返回类型吗?例如,在 Scala 中:

def foo(): Option[T]()

在 JavaScript 中,我能找到的唯一方法是通过不同的返回值,例如:

function foo() {
  if (x) {
    return "value";
  } else {
    return false;
  }
}

这是惯用的还是有更好的方法?

标签: javascriptfunctional-programmingoptional

解决方案


不,那里没有。考虑到 JS 是“弱类型”。

通常在这种情况下,您要么 returnnull要么undefined. 对于返回对象类型的函数,通常是第一个,例如在 DOM API 中:

let node = document.getElementById("foo");

if (node) {
  // do something
}

如果具有 id 的节点foo不存在,node将为null. 检查有效,因为null它是一个falsy值。

在您的示例中,如果您返回一个字符串,那么最好的方法可能是返回一个空字符串——这也是“假的”——或者undefined.

但是没有什么能像OptionScala 或 Rust 一样。


推荐阅读