将字符串查询转换为可执行语句

时间:2018-07-06 08:40:07

标签: typescript

如果我有这样的查询:

row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1

提供为字符串...如何将其转换为在if语句中使用的可执行代码

例如:

if (row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1){ /*doSomething*/ }

使用Typescript ..我希望算法可以..如果没有其他方法

我尝试使用eval(),但是我被禁止使用eval

,还尝试做:

const Query = "row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1";
const func = new Function("return " + Query + ";");
if (func()) {
   // code
}

和代码只是在..行退出并退出

1 个答案:

答案 0 :(得分:1)

我相信您可以使用eval函数来评估TypeScript中的JavaScript表达式:

const query = "row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1";

const row = {Average: 98, Department: "lfs", Fail: 1}
console.log('query evaluates to ', eval(query));
if (eval(query)) {
    console.log('It was true')
} else {
    console.log('It was false')
}