Aurelia-CLI を使用して作成した Aurelia TypeScript プロジェクトに localForage をインポートしようとしています。参照の追加に関するドキュメントに従って、かなりの方法でそれをいじってみました。aurelia.json の依存関係でライブラリを参照するだけで、ライブラリが読み込まれます。
...
"localforage",
...
次のようにインポートします。
import * as localForage from "localforage";
唯一の問題は、コンパイル時に TypeScript から大量のエラーが発生することです。次のような用途:
localForage.getItem("user-settings").then((settings: UserSettings) => {
次のようなエラーが表示されます。
src\repositories\settings-repository.ts(15,19): error TS2339: Property 'getItem' does not exist on type 'typeo
f "localforage"'.
[08:10:03] gulp-notify: [Error running Gulp] Error: src\repositories\settings-repository.ts(15,19): error TS23
39: Property 'getItem' does not exist on type 'typeof "localforage"'.
src\repositories\settings-repository.ts(19,23): error TS2339: Property 'setItem' does not exist on type 'typeo
f "localforage"'.
ただし、実行時に作業に進みます。私は、typings.json で定義された localforage を持っています:
"localforage": "registry:dt/localforage#0.0.0+20160629074517"
TypeScript は、これが localForage.localforage に実際に存在すると考えているようで、実行時に未定義の例外をスローしますが、コンパイル時のエラーは発生しません。私はそれを次のように参照しようとしました:
import { localforage } from "localforage";
および( https://github.com/localForage/localForageのドキュメントに従って)
const localForage:LocalForage = require("localforage");
どちらもコンパイル エラーは発生しなくなりましたが、実行時には機能しません。