Я хочу сказать 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. Кто-нибудь знает, как это исправить? Или я что-то не так делаю, что не замечаю?