0

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");

どちらもコンパイル エラーは発生しなくなりましたが、実行時には機能しません。

4

1 に答える 1

0

ジェネリックを使用する

ほとんどの場合、最初のショットでそこにいましたが、ここで入力を確認すると、正しい構文は であることがわかりますgetItem<T>。だからこれを試してください:

localForage.getItem<UserSettings>("user-settings")
于 2016-08-09T19:19:35.487 に答える