Я пытаюсь написать приложение angular с IndexedDB для небольшого книжного магазина. Я установил для индекса 'isbn' значение unique , и теперь я пытаюсь спровоцировать ошибку, потому что я хочу сказать пользователю, что isbn должен быть уникальным, и показать сообщение об ошибке.
Я могу console.log (e) и получить следующий вывод:
Событие
{isTrusted: true, type: "error",
target: IDBRequest, currentTarget: IDBRequest, eventPhase: 2, …}
isTrusted: true
type: "error"
target: IDBRequest
result: undefined
Ошибка: DOMException: Невозможно добавить ключ в индекс ' isbn ': хотя бы один ключ не удовлетворяет требованиям уникальности.
Проблема:
Я не могу написать console.log (e.target.error) потому что TypeScript говорит: TS2339: свойство 'error' не существует для типа 'EventTarget'
Почему?
#
Это метод:
addItem () {
const request = window.indexedDB.open(this.database.name);
request.onsuccess = event => {
const item = {
title: '',
isbn: 1,
descrition: '',
rating: 1
};
const transaction = request.result.transaction(['books'], 'readwrite');
const objectStore = transaction.objectStore('books');
const objectStoreRequest = objectStore.add(item);
objectStoreRequest.onerror = e => {
console.log(e.target.error); // Here is the error TS2339: Property does not exist
};
};
request.onerror = event => {
console.log('Error adding item');
};
}