초보자의 질문. Working with IndexedDBJake Archibald's IDB library을 사용하지만 일반 Javascript 대신 Typescript를 사용하는 자습서를 통해 산책을 시도하고 있습니다. 지금까지별로 성공하지 못했습니다.indexedDB를 사용하기위한 Typescript 및 IDB 라이브러리. 안내 필요
내 코드는 다음과 같습니다.
import * as idb from "./idb";
const dbPromise: Promise<idb.DB> = idb.default.open('test-db2', 1, (upgradeDb: idb.UpgradeDB) => {
console.log('making a new object store');
if (!upgradeDb.objectStoreNames.contains('firstOS')) {
upgradeDb.createObjectStore('firstOS');
}
});
컴파일러가 VS 코드에서 오류 및 인텔리 센스가 제대로 작동하지 않기 때문에 정의 파일이 잘로드됩니다.
내가 내 HTML 페이지에 require.js를 사용하여 내 모듈을로드 관리하지만, 콘솔이 다음과 같은 오류 표시 : 나는 idb.default.open(...)
호출에서 default
를 제거하면, 이제
Uncaught TypeError: Cannot read property 'default' of undefined
at Object.<anonymous> (main.ts:8)
at Object.execCb (require.min.js:5)
at b.check (require.min.js:5)
at b.<anonymous> (require.min.js:5)
at require.min.js:5
at require.min.js:5
at each (require.min.js:5)
at b.emit (require.min.js:5)
at b.check (require.min.js:5)
at b.enable (require.min.js:5)
를, 컴파일러는 나에게 말한다 '오픈'은 '.../idb'유형에 존재하지 않습니다. 라이브러리는 idb
을 기본값으로 내 보냅니다.
일종의 초기화가 누락되었지만 실제로 또는 무엇을 볼 수 없습니다.
아무도 도와 줄 수 있습니까?
해결책은
이것은 내가 마지막으로이 작품을 만든 방법이다.
import * as idxdb from "./idb";
import "./js/idb.js";
let dbPromise: Promise<idxdb.DB> = idb.open('test-db2', 1, (upgradeDb: idxdb.UpgradeDB) => {
console.log('making a new object store');
if (!upgradeDb.objectStoreNames.contains('firstOS')) {
upgradeDb.createObjectStore('firstOS');
}
});
첫 번째 import 문은 유형을 가져 와서 컴파일하고 힌트를 제공합니다. 두 번째 명령문은 idb 객체를 혼합 객체로 가져옵니다.
올바른 방향으로 나를 가리켜 주셔서 감사합니다. @Josh에 많은 도움을드립니다. 기본 수출을 가져올 때
귀하의 의견에 감사드립니다. 같은 상황에서 누구든지 자신을 찾으면 게시물을 편집했습니다. 이것을 들여다 주셔서 감사합니다! – JdelaRubia