在 Java 中,我使用 Google Guava检查我的先决条件:
public Port getPublishedPort(Port port) {
checkArgument(port.isPublishedPort(), "Given port %s is not a published port.", port);
JavaScript中是否有与此等价的功能?
在 Java 中,我使用 Google Guava检查我的先决条件:
public Port getPublishedPort(Port port) {
checkArgument(port.isPublishedPort(), "Given port %s is not a published port.", port);
JavaScript中是否有与此等价的功能?
Node.js前置条件库被称为具有用于前置条件检查的类似 Guava 的 API。
在 Node.js 中支持 Guava,例如 Precondition 错误检查
new InstanceValidator(port).checkArgument(
"publishedPort", "Given port %s is not a published port.", [port]);
我编写了Requirements.js。用法如下所示:
import {requireThat} from "@cowwoc/requirements/es6/node/DefaultRequirements.js"
class Player
{
constructor(name, age)
{
requireThat(name, "name").isNotNull().asString().length().isBetween(1, 30);
requireThat(age, "age").asNumber().isBetween(18, 30);
}
}
主要关注点是可读性。这是输出的样子:
RangeError: age must be in range [18, 30).
Actual: 15
我欢迎您的反馈。
不,但你可以自己写:
var Preconditions = {
checkArgument: function(condition, message) {
if (!condition) {
throw Error('IllegalArgumentException: ' + (message || ''));
}
}
}
在您的业务逻辑中
function getPublishedPort(port) {
Preconditions.checkArgument(port.isPublishedPort(), 'Given port is not a published port.');
// ... Business logic ...
}
虽然我猜它不能为你做惰性评估的格式化。
我最近为 JavaScript 编写了一个名为condicio的 Preconditions 版本。它与 Guava 的先决条件非常相似,但为 JavaScript 添加了一些功能。