リーフレットとプラグインをIonic 2プロジェクト。リーフレット自体とleaflet-path-transformプラグインをインストールしてインポートしました。また、the Leaflet type declarationがDefinatelyTypedに含まれています。タイプ宣言を無視するためにdeclare var L: any;
を追加すると、コードはすべて機能します。タイプXの引数はタイプYのパラメータに割り当てられません。オブジェクトリテラルは既知のプロパティのみを指定することができ、XはタイプYに存在しません
これは、ページコントローラ(home.ts)の重要な部分である:
var polyline = new L.Polyline(
L.GeoJSON.coordsToLatLngs([
[114.14314270019531, 22.49479484975443],
[114.21798706054688, 22.524608511026262],
[114.20768737792969, 22.524608511026262],
[114.20768737792969, 22.536024805886974]
]), {
weight: 15,
draggable: true,
transform: true
})
.bindPopup("L.Polyline")
.addTo(map);
polyline.transform.enable();
draggable
とtransform
は、基本的なリーフレットで有効なオプションではありません(でも.transform
である)ので、私は型宣言ファイルを書きましたPROJECT_DIR\node_modules\@types\leaflet-path-transform\index.d.ts
で定義します。これまでに書いたことは、the type declaration for leaflet-editableに基づいています。そのプラグインはL.Mapオブジェクトを作成するときに新しいMapOptionsを許可するからです。
/// <reference types="leaflet" />
declare namespace L {
export interface Polyline {
draggable: boolean;
}
namespace Polyline {
export interface PolylineOptions {
draggable: boolean;
}
}
}
これは、これまでのところ、最初のオプションを扱いますが、それは活字体のエラーをクリアすることに成功していない:
Typescript Error
Argument of type '{ weight: number; draggable: boolean; }' is not assignable to parameter of type 'PolylineOptions'. Object literal may only specify known properties, and 'draggable' does not exist in type 'PolylineOptions'.
誰かが私が私がここで間違ってやっているかを把握助けることができますか?最初は、新しい型宣言ファイルは単純に無視されていると思っていましたが、誤植を残すと新しいエラーが発生するため、効果があるようです。
それが助け場合は、ここで私が働いている環境です:
- イオン性フレームワーク:2.0.0
- イオンネイティブ:2.4.1
- イオンのAppスクリプト:1.0。 0
- 角度コア:2.2.1
- 角度コンパイラCLI:2.2.1
- ノード:6.9.4
- OSプラットフォーム:Windows 10
- ナビゲータプラットフォーム:Win32
- ユーザエージェント:Mozilla/5.0(Windows NT 10.0; WOW64)のAppleWebKit/537.36(KHTML、のGecko)クローム/ 56.0.2924.87 Safariのように/ 537.36
それを稼働させましたか? – ackuser
まだありません。私はちょうど適切な型宣言の代わりに "any"修飾子を使用しています。 – carpiediem