This question already has answers here:
In Typescript, what is the ! (exclamation mark / bang) operator when dereferencing a member?

(3个答案)


在6个月前关闭。




我想知道这段代码是正确的还是有另一种定义它的方式。

除了使用error !,还有其他方法。
我想知道什么错误!实际上意味着无法理解。

最佳答案

如果您的预期行为是正确的,则您提供的代码是正确的

  • errors数组返回第一个错误。
  • 您确定errors数组至少包含一个错误,因为您将返回ErrorResult而不是ErrorResult | undefined或其他等效项。

  • 您可以将其重写为
    // Typescripts infers the type of var to be `ErrorResult | undefined`
    let error = errors.find(element => element.error);
    
    // ! tells the compiler that you know error is not `undefined`
    return error!;
    

    10-08 00:21