我想写一个关于scala.js的封装,以适用于一个JavaScript库。该库有一个可以这样实例化的对象:
new Point({x: 10, y: 12})
看起来很简单。我希望有一个坐标case类和一个围绕着点的包装器。
case class Coord(x: Int, y: Int)
class Point(coord: Coord) extends js.Object
显然,这种方法行不通,因为案例类没有被转换成对象字面量。当然,我可以摆脱Coord案例类,而是将js.Dynamic.literal传递给构造函数,但这不太类型安全。
我还有什么选择?我必须编写一个更高级的包装器,接受Coord并在将其传递给Point对象之前将其转换为对象字面量吗?