如何在打字稿中“返回”外部函数定义

lok*_*kov 5 javascript userscripts typescript tampermonkey

  1. 我需要在打字稿上重写我的tampermonkey 脚本。

  2. 在打字稿上重写此 javascript 的正确方法是什么?

    if (window.top != window.self ) {
        return;
    }
    
    Run Code Online (Sandbox Code Playgroud)

主要目标是如果脚本不在 window.top 中运行,则停止执行脚本。

Typescript 编译器写入错误 TS1108:“return”语句只能在函数体内使用。

lok*_*kov -4

您不能返回外部函数,但使用 throw Exception 您也可以停止执行 userscipts (tampermonkey):

if (window.top != window.self) {
    throw new Error("Not on top");
}
Run Code Online (Sandbox Code Playgroud)

  • 不!不要对标准 OP 过程的事情抛出错误。除了导致未来令人头疼之外,这还会(非常轻微地)不必要地降低浏览器性能。将用户脚本的整个主要部分包装在“if()”中,如 David Laberge 在他的(编辑过的)答案中所示。 (2认同)