我需要在打字稿上重写我的tampermonkey脚本。
在打字稿上重写这个javascript的正确方法是什么?
if (window.top != window.self ) {
return;
}
如果脚本不在window.top中运行,则主要目标是停止执行脚本。
Typescript编译器写入ERROR TS1108:A' return'语句只能在函数体中使用。
答案 0 :(得分:2)
我将如何做到这一点。打字稿转换成Javascript,但它不是Javascript。
if(validateIfTop()){
// MAIN BODY OF YOUR USERSCRIPT GOES HERE
}
validateIfTop():boolean{
return window.top === window.self;
}
这应该可以解决当前的转发错误。但是,您运行良好的代码可能是当前状态。只是从主脚本中返回一个值是没有意义的。您可能希望查看此问题:Is it possible to stop JavaScript execution?它解释了如何停止javascript脚本。
答案 1 :(得分:0)
我怀疑你的原始JS函数只是巧妙地运行,即它在运行时无声地失败:
我会重构代码,使其被大卫已经建议的if
块包围。
答案 2 :(得分:-3)
你不能返回外部函数,但是使用throw Exception你也可以停止执行userscipts(tampermonkey):
if (window.top != window.self) {
throw new Error("Not on top");
}