dispatchEvent KeyboardEvent проблема с печатанием - PullRequest
0 голосов
/ 30 октября 2018

У меня возникла проблема при попытке вызвать событие keyup для нажатия клавиши возврата на собственный элемент в моих модульных тестах Angular.

Если я попытаюсь:

debugElement.nativeElement.dispatchEvent(new KeyboardEvent('keyup', {code: 'Backspace'}));

Я получаю ошибку типа:

TypeError: KeyboardEventConstructor is not a constructor (evaluating 'new KeyboardEvent('keyup', { code: 'Backspace' })')

Я не получаю никаких ошибок в моем редакторе (VSCode), и, если я буду следовать определениям типов (в файл наборов API DOM), конструктор для KeyboardEvent будет:

new(typeArg: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;

и второй аргумент принимает интерфейс, определенный следующим образом:

interface KeyboardEventInit extends EventModifierInit {
    code?: string;
    key?: string;
    location?: number;
    repeat?: boolean;
}

Я не уверен, где я иду не так, кто-нибудь может помочь?

Спасибо

1 Ответ

0 голосов
/ 01 ноября 2018

(при условии, что вы используете трансплантацию ng-cli) Кажется, что все работает нормально, вот stackblitz

Поскольку это ошибка опечатки, это может быть либо несовместимая версия lib.dom.d.ts, либо у вас есть какие-то настройки при неправильной компиляции / переносе TS.

(несовместимость версий с Angular может возникнуть при следующем предложении)

Попробуйте сначала с обновлением набора с

npm install машинописный текст @ последний

или просто проверьте свой package.json "typcript": "~ 2.7.2", что он использует последнюю версию и настроен в соответствии с вашей версией Angular.

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