我正在开发一个自定义编辑器,它使用 Monaco 编辑器来接受用户片段(在 JS 语言中预定义),并且我正在使用 JSHint 在将其提交到后端之前评估它们的有效性。
根据我的应用程序,数据类型可以接受一定数量的自定义函数。让我们举一个 String 的例子来更清楚地说明我的情况。
我已经使用以下脚本初始化了 JSHint:
String.prototype.myFunc = param => {};
String.prototype.myAnotherFunc = paramTwo => {};
所以我的程序中所有字符串的两个可接受的函数是myFunc
和myAnotherFunc
。
但是,如果用户输入/调用任何其他函数,如
"testString".invalidFunc();
我希望它像浏览器控制台那样抛出错误。
我也检查了jsHintData
变量内部的“错误”数组。有人可以帮我理解我哪里出错了吗?
如果有帮助,这是我的 JSHint 配置:
const script = [
'String.prototype.myFunc = param => {};',
'String.prototype.myAnotherFunc = paramTwo => {};',
'"testString".invalidFunc();'
];
try {
JSHINT(script, { maxerr: Infinity, asi: true, latedef: true });
const jsHintData = JSHINT.data();
} catch (error) {
return error;
}