E4127

E4127#

类型不是错误类型。

MoonBit 仅允许在函数返回类型中的感叹号 (!) 之后出现错误类型(使用 type! 关键字定义)。

错误示例#

pub fn may_raise_error() -> Unit!String {
  //                             ^~~~~~
  // Error: Type String is not an error type.
  raise "Failed" // Error: Type String is not an error type.
}

建议#

您可以将希望抛出的类型包装在错误类型中:

type! StringError String

pub fn may_raise_error() -> Unit!StringError {
  raise StringError("Failed")
}