访问打字稿中的变量

时间:2019-04-25 07:01:47

标签: typescript variables canvas html5-canvas

我正在使用打字稿画画布。问题是我在一个类中有两个方法需要访问相同的变量。我尝试将它们声明为

declare var x;
declare var y

export class Foo {
  constructor() {}
  method1() {
    this.x;
  }

  method2() {
    this.x;
  }
}

但是它似乎无法正常工作。我在这里想念什么?

答案很简单,对于普通变量似乎很好。由于我正在使用画布。我有类似的东西

export class Foo {
  private x: number = 10;
  private y: number = 20;

  constructor(canvas: HTMLCanvasElement) {
    this.canvas = < HTMLCanvasElement > canvas;
    this.ctx = < CanvasRenderingContext2D > canvas.getContext('2d');
  }
  method1() {
    let width = this.canvas.width;
  }
  method2() {
    let width = this.canvas.width;
  }
}

我如何一次声明它们并在两种方法中使用它。先感谢您。

2 个答案:

答案 0 :(得分:1)

xy可以访问声明的变量,而无需this.

但是,如果希望变量在类中定义并在类中定义,则应将变量创建为类字段:

export class Foo {
  private x: number;
  private y: number;

  constructor() {}

  public method1() {
    this.x;
  }

  public method2() {
    this.x;
  }
} 

答案 1 :(得分:1)

您是在类外部声明变量,而不是将其定义为类属性

export class Foo {
  private x;
  private y;
  constructor() {}
  method1() {
    this.x;
  }

  method2() {
    this.x;
  }
}