eslint/no-obj-calls 正确性
它做了什么
禁止将某些全局对象当作函数调用。
此规则在 TypeScript 代码中可以被禁用,因为 TypeScript 编译器会强制执行此检查。
为什么这是不好的?
某些全局对象并非设计为作为函数调用。将其当作函数调用通常会导致抛出 TypeError。
示例
此规则的错误代码示例:
javascript
let math = Math();
let newMath = new Math();
let json = JSON();
let newJson = new JSON();
let atomics = Atomics();
let newAtomics = new Atomics();
let intl = Intl();
let newIntl = new Intl();
let reflect = Reflect();
let newReflect = new Reflect();此规则的正确代码示例:
javascript
let area = (r) => 2 * Math.PI * r * r;
let object = JSON.parse("{}");
let first = Atomics.load(sharedArray, 0);
let segmenterFrom = Intl.Segmenter("fr", { granularity: "word" });如何使用
要通过配置文件或命令行启用此规则,可以使用:
json
{
"rules": {
"no-obj-calls": "error"
}
}bash
oxlint --deny no-obj-calls