在 node.js 中启用/禁用断言语句的简单方法

use*_*486 5 javascript assert node.js

我在 node.js https://www.npmjs.com/package/assert 中使用 assert 模块

在 C/C++ 中,可以使用宏轻松启用/禁用断言语句。通常可以对 node.js 和 javascript 做同样的事情吗?

Bob*_*ijt 2

请注意,您使用的将断言添加为模块,因此是polyfills

您可以简单地覆盖对象的一部分来禁用polyfill。

示例:
假设您想要禁用deepEqual当前如下所示的断言:

assert.deepEqual = function deepEqual(actual, expected, message) {
  if (!_deepEqual(actual, expected)) {
    fail(actual, expected, message, 'deepEqual', assert.deepEqual);
  }
};
Run Code Online (Sandbox Code Playgroud)

您可以通过执行以下操作来简单地覆盖它:

assert.deepEqual = function deepEqual(actual, expected, message) {
  // disable
};
Run Code Online (Sandbox Code Playgroud)

仅供参考
断言语句正在进行中:http://wiki.ecmascript.org/doku.php ?id=strawman:assert