打字稿中的"throw(e)"和"throw e"之间有区别吗?

Mic*_*ing 1 exception-handling typescript

我找不到有关打字稿中的抛出语法的任何信息,所以我只是想知道这两个语义是否在语义上相同?从我测试的两种方法保持callstack.

try {
    throw new Error("You can't recover from this.");
} catch (e) {
    console.error(e);
    throw e;
}
try {
    throw new Error("You can't recover from this.");
} catch (e) {
    console.error(e);
    throw(e);
}
Run Code Online (Sandbox Code Playgroud)

在C#中这样做会踩到callstack,所以我只想绝对肯定.正确的C#方式是这样的:

try {
    throw new Exception("You can't recover from this.");
catch (Exception e)
    _logger.LogError(e);
    throw;
}
Run Code Online (Sandbox Code Playgroud)

art*_*tem 7

throw在TypeScript(和javascript)中可以抛出任意表达式.不同于if,while并且for,throw可以立即跟随表达式,而不包围表达式().

从表达语义的角度来看,这两个表达式是相同的:

e
Run Code Online (Sandbox Code Playgroud)

(e)
Run Code Online (Sandbox Code Playgroud)