Реализовать object.prototype.function в ionic 3 - PullRequest
1 голос
/ 08 ноября 2019

Ниже приведен код Javascript, в котором я создаю объект как new Box2 и вставляю каждый объект в массив. Внутри цикла я вызываю draw () для каждого элемента. Все хорошо работает на обычном js, но я хочу реализовать этот код в ionic 3. Если тот же код копируется в файл .ts в Ionic, в редакторе он выдает ошибку как :
[ts] Duplicateидентификатор «Box2». [ts] Последующие объявления свойств должны иметь одинаковый тип. Свойство 'Box2' должно иметь тип '() => void', но здесь имеет тип 'any'. в то время как в браузере выдает ошибку как ';'ожидается для строки Box2.prototype

Box2() {
    this.x = 0;
    this.y = 0;
    this.w = 1; // default width and height?
    this.h = 1;
    this.fill = '#444444';
  }

  Box2.prototype = {
    draw : function(){
      console.log("hello");
    }
  }

1 Ответ

2 голосов
/ 08 ноября 2019

Вот способ расширить прототип в машинописи с помощью интерфейса. Как это:

class Box2 {
  x = 0;
  y = 0;
  w = 1; // default width and height?
  h = 1;
  fill = '#444444';
}

interface Box2 { // this interface will allow us to implement draw
  draw(): void;
}

Box2.prototype.draw = function() {
  console.log("hello");
}

// usage of our draw function
new Box2().draw();
...