この極端なケースがあるかどうかわかりませんが、これを行う方法についてはまっすぐな文書を見つけることができません。TypeScript宣言を使用して外部のJavaScriptライブラリを使用する
イオンアプリケーションを開発しており、その一部としてALKMaps JavaScriptライブラリ(Google Maps APIに似ています)を使用する必要があります。これを行うには、ローカルのnpmモジュールを作成し、その中にhttps://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html#objects-with-propertiesが推奨するalkmaps.d.tsファイルを作成しました)。しかし、角度コードに正しくインポートする方法を理解できないようです。同じ文書では、<reference path=''>
タグを使用すると良いとは言えませんが、これがtscコンパイラを満足させる唯一のことです。
マイ宣言ファイル、alkmaps.d.ts
は、のように見えます(簡潔にするために除外の内側):declare namespace ALKMaps {
export class Map { ... }
...
}
そして、私のようなファイルにインポートしようとしていた。
import { ALKMaps } from 'alkmaps'; // Error: File '.../alkmaps.d.ts' is not a module
Iまた、次のように試しましたが、同じエラーが発生しました。参照タグを使用して
import ALKMaps = require('alkmaps');
は、このモジュール内で動作しているようですが、その後、このモジュールを利用したプロジェクトは、まだ「モジュールではありません」というエラーがスローされます(つまり、別の質問を正当かもしれません)
https://github.com/Microsoft/TypeScript/issues/11420からI export = ALKMaps
またはexport as namespace ALKMaps
というアイデアを見つけましたが、それらを宣言ファイルに追加すると、代わりに別のエラーが発生しました。
誰でも、タイプスクリプトノードモジュール内の外部JSライブラリを表す宣言ファイルの使い方を簡単に説明できますか?
'import {ALKMaps}'から 'alkmaps''と 'import ALKMaps = require(' alkmaps ')'は実行時に2つの非常に異なることを行います。それはどういう意味ですか? –
それは、私の限られたnode.jsの理解の側面です。私は、 "not a module"というエラーで問題を解決しようとするために、これらの形式のインポートを(同時に行うのではなく)試みました。 – Mike