E4008

E4008#

FFI 函数不能有类型参数。

错误示例:#

extern "js" fn id[T](x: T) -> T = "(x) => x"

这个例子中,FFI 函数(用 extern 标识)带有一个类型参数,而这是不允许的。

建议#

考虑使用符合你需求的具体类型:

extern "js" fn int_id(x: Int) -> Int = "(x) => x"

对于更复杂的场景,考虑添加一个额外的特征:

///|
trait Ider {
  id(Self) -> Self
}

///|
impl Ider for Int with id(self) { int_id(self) }