Утверждение типа TypeScript в. vue файлах, похоже, сбивает с толку ESLint - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу сказать TypeScript, чтобы он относился к моей ссылке как к элементу canvas, поэтому он рад, что я звоню getContext.

Так что я делаю это: this.context = (<HTMLCanvasElement>this.$refs.canvas).getContext('2d');

ts обеспокоен тем, что теперь я рад, что я вызываю getContext, однако теперь я получаю ошибку eslint:

Module Warning (from ./node_modules/eslint-loader/index.js):

D:\Projects\image-parser\image-parser\src\components\CanvasPanScale.vue
  51:32  error  Parsing error: '}' expected

✖ 1 problem (1 error, 0 warnings)

Это на самом деле относится к коду на несколько строк ниже:

this.context = (<HTMLCanvasElement>this.$refs.canvas).getContext('2d');
this.context.imageSmoothingEnabled = false;
if (this.imageToDraw) {
  this.drawImageToCanvas(); // <-- ESLint is angry about this closing parentheses
}

This Похоже, что это связано с тем, что я нахожусь внутри файла. vue, а не файла .ts, и поскольку элементы html и типы ts допускаются в одном файле, это приводит в замешательство угловые скобки? Удаление угловых скобок действительно исправляет это.

Я могу исправить ошибку, выполнив:

const canvas = this.$refs.canvas as HTMLCanvasElement;
this.context = canvas.getContext('2d');
this.context.imageSmoothingEnabled = false;
if (this.imageToDraw) {
  this.drawImageToCanvas();
}

Но я создаю переменную только для того, чтобы рассматривать ее как холст, и я чувствую, что другой путь не должен нарушать ESLint. Кто-нибудь знает, как это исправить? Или я что-то не так делаю, что не замечаю?

1 Ответ

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

Нашел ответ и решил, что отправлю в случае, если у других возникнут похожие проблемы. Я сделал ошибку, установив Vue Extension Pack для VSCode, который, в свою очередь, просто устанавливает как 8 других плагинов. Одним из таких плагинов является конфигурация ESLint, которая полностью нарушает типизацию TypeScript и автозаполнение. Я уверен, что где-то в этом гигантском пакете плагинов я мог бы найти некоторые настройки, чтобы исправить это, но вместо того, чтобы справиться с этим, я удалил весь пакет, а затем только установил Vuter. Теперь все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...