puw*_*eac 1 indexeddb typescript angular
我尝试用 IndexedDB 为一家小书店编写一个有角度的应用程序。\n我将索引“isbn”设置为唯一,现在我尝试引发错误,因为我想告诉用户 isbn 必须是唯一的并想显示错误消息。
\n\n我可以console.log(e)并获得以下输出:
\n\n事件
\n\n {isTrusted: true, type: "error", \n target: IDBRequest, currentTarget: IDBRequest, eventPhase: 2, \xe2\x80\xa6}\n\nisTrusted: true\ntype: "error"\ntarget: IDBRequest\nresult: undefined\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n错误:DOMException:无法将键添加到索引“isbn”:至少有一个键不满足唯一性要求。
\n
问题:
\n\n我无法编写console.log(e.target.error)因为 TypeScript 说:\nTS2339: 类型 \'EventTarget\' 上不存在属性 \'error\'
\n\n为什么?
\n\n#\n\n这是方法:
\n\n新增项目() {
\n\nconst request = window.indexedDB.open(this.database.name);\n\nrequest.onsuccess = event => {\n\n const item = {\n title: \'\',\n isbn: 1,\n descrition: \'\',\n rating: 1\n };\n\n const transaction = request.result.transaction([\'books\'], \'readwrite\');\n const objectStore = transaction.objectStore(\'books\');\n const objectStoreRequest = objectStore.add(item);\n\n objectStoreRequest.onerror = e => {\n console.log(e.target.error); // Here is the error TS2339: Property does not exist\n };\n};\n\nrequest.onerror = event => {\n console.log(\'Error adding item\');\n};\nRun Code Online (Sandbox Code Playgroud)\n\n}
\n这是 TypeScript 中的一个错误,请参阅https://github.com/microsoft/TypeScript/issues/30669
any您可以通过强制转换或使用或其他方式来解决它// @ts-ignore。
| 归档时间: |
|
| 查看次数: |
4440 次 |
| 最近记录: |