Вы видите эту проблему, потому что встроенные типы TypeScript для DOM (часто называемые lib.dom.d.ts
из-за имени файла, в котором они хранятся) не объявляют, что свойство onmousewheel
существует втип Document
.Глобальная переменная document
объявлена имеющей тип Document
.Тем не менее, он, очевидно, существует на window
.Можете ли вы переключить код на window.onmousewheel
?
Если вы уверены, что должен иметь document.onmousewheel
, вы можете создать новый файл (назовем его typings/lib.custom.d.ts
) и объявитьчто интерфейс Document
также имеет свойство onmousewheel
:
interface Document {
onmousewheel: ((this: Document, ev: Event) => any) | null;
}
Обратите внимание, что этот файл не может ничего import
или export
: он предназначен для объявления глобально доступного интерфейса Document
, который добавит типы к любому ранее существующему глобально доступному интерфейсу Document
.
Примечание: попытка tslint:disable
ничего не делает здесь, потому что ошибки, которые вы получаете,в TypeScript.TSLint предоставляет дополнительный уровень проверки поверх TypeScript, но поскольку эта ошибка сама по себе является TypeScript, она не является фактором.Возможно, вы думаете о @ts-ignore
.Однако это следует использовать редко (если вообще когда-либо) и только в крайнем случае.Гораздо лучше правильно проинформировать систему типов о том, что вы так думаете, (как выше с добавленным свойством интерфейса onmousewheel
), чем полностью отключить TypeScript для строки.Отключение TypeScript в строке может игнорировать другие допустимые ошибки.