如何 'return' 打字稿中的外部函数定义

How to 'return' outside function definition in typescript

  1. 我需要在 typescript 上重写我的 tampermonkey 脚本。

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

    if (window.top != window.self ) {
        return;
    }
    

主要目标是在 运行 不在 window.top 中时停止执行脚本。

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

这是我的做法。 Typescript 转译为 Javascript,但它不是 Javascript。

if(validateIfTop()){

    // MAIN BODY OF YOUR USERSCRIPT GOES HERE

}

validateIfTop():boolean{
    return window.top === window.self;
}

这应该可以修复当前的编译器错误。但是您的代码可能 运行 处于当前状态。只是 return 主脚本中的值没有意义。您可能想看看这个问题:Is it possible to stop JavaScript execution? 它解释了如何停止 javascript 脚本。

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

if (window.top != window.self) {
    throw new Error("Not on top");
}

我怀疑您的原始 JS 功能只是巧合,即它在运行时静默失败:

我会重构代码,使其被 if 块包围,正如 David 已经建议的那样。