正确改写打字稿签名,返回自定义类型,而不是方法所需的严格签名

时间:2019-01-20 09:44:21

标签: javascript typescript

在打字稿中,我有一个简单的课

class Point {
  x;
  y;
  constructor(x, y) {
    this.x = x
    this.y = y;
  }
}

此外,我还编写了这样的Painter文字

let Painter = {
  ramdomPoint: ():[number, number] => {

返回一个由两个数字组成的数组,以后我将在类似的

中使用
ctx.moveTo.apply(ctx, Painter.ramdomPoint());

用于HTML5画布。请记住,moveTo在下一个动画帧的html5画布中正式要求x和y坐标为两个数字。

我的问题是,对于ramdomPoint,我想表达我想要在数组中使用Point的想法,

ramdomPoint: ():[Point]

而不是

ramdomPoint: ():[number, number]

请注意,实际上point已经是number, number

这完全可能吗?

1 个答案:

答案 0 :(得分:0)

非常感谢您的帮助!

我终于设法通过函数实现了我想要的。

我的最终代码如下:

type Point = [number, number];
function Point(x: number, y: number):Point {
  return [x, y]
}

let Painter = {
  ramdomPoint: (): Point => {
    return Point(Math.random() * w, Math.random() * h);
  }
};

我认为像这样,它足以表达。希望这对其他人有帮助!来自西班牙的问候:)