在Java中,我使用Google Guava检查preconditions:
public Port getPublishedPort(Port port) {
checkArgument(port.isPublishedPort(), "Given port %s is not a published port.", port);
JavaScript中是否有相同的内容?
答案 0 :(得分:5)
看看这个模块,让我知道它是否符合您的需求。
答案 1 :(得分:1)
不,但你可以自己编写:
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 ...
}
虽然我猜它不能用懒惰评估进行格式化。
答案 2 :(得分:1)
我最近为JavaScript编写了一个名为condicio的Preconditions版本。它与Guava的Preconditions非常相似,但是它为JavaScript添加了一些功能。
答案 3 :(得分:0)
我创作了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
欢迎您的反馈。