Используйте Chart. js метод рисования как функцию стрелки Typescript - PullRequest
0 голосов
/ 14 апреля 2020

Я использую диаграмму. js Функция рисования для изменения линейного графика. Ниже приведен пример кода -

 Chart.controllers.line = Chart.controllers.line.extend({
        draw: function() {
          const ctx = this.chart.chart.ctx;
          ctx.save();
          ctx.shadowColor = '#aefdda';
          ctx.shadowBlur = 7;
          ctx.shadowOffsetX = 1;
          ctx.shadowOffsetY = 3;
          ctx.stroke();
          draw.apply(this, arguments);
          ctx.restore();
        },
      });

Но проблема в том, что согласно правилу eslint появляется это предупреждение предупреждение Неожиданно безымянный метод 'draw' , и мне нужно преобразовать его в функцию стрелки. Но я не могу использовать this и аргументы внутри функции стрелки.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Вы можете использовать более короткий синтаксис ES6 для определений методов в инициализаторах объектов.

 Chart.controllers.line = Chart.controllers.line.extend({
        draw () {
          const ctx = this.chart.chart.ctx;

Если вы используете более низкую версию js, вы можете:

 Chart.controllers.line = Chart.controllers.line.extend({
        draw: function draw () {
          const ctx = this.chart.chart.ctx;

Вы можете проверить как синтаксис ES6 преобразуется в более старый js с помощью babel: интерактивный пример

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions

0 голосов
/ 14 апреля 2020

Я не думаю, что вам нужно преобразовывать его в функцию стрелки. Попробуйте этот стиль объявления метода литерала объекта:

Chart.controllers.line = Chart.controllers.line.extend({
  draw() {
    //...
  }
})

См. Примеры правильного использования правила func-names здесь.

...