2017-03-06 18 views
0

select2TypeScript (2.1)を使用してクリックイベントから選択した値を取得しようとしています。 evt.paramsにアクセスしようとしたときプロパティ 'params'がタイプ 'Event'に存在しません

Symbol 'params' cannot be properly resolved, probably it is located in inaccessible module

TypeScriptに私はいつも次のエラーを取得する、しかし

:私は例hereを追いました。

My機能:

// bind to the select-event 
$theElement.on("select2:select", (evt: Event) => { 
    if (!evt) { 
     var args = "{}"; 
    } else { 
     var args = JSON.stringify(evt.params, function (key, value) { // <-- here is the error 
      if (value && value.nodeName) return "[DOM node]"; 
      if (value instanceof $.Event) return "[$.Event]"; 
      return value; 
     }); 
    } 
}); 

私はC:\Program Files (x86)\Microsoft SDKs\TypeScript\2.1に位置Eventのソースとしても知られlib.d.tsをチェックし、実際に、定義されたparamsはありません。

したがって、タイプをanyに変更せずにプロパティにアクセスするにはどうすればよいですか?ここで

は、ChromeのDeveloper Toolsからのスクリーンショットです:それはSELECT2ライブラリによってカスタマイズされたjQueryのイベントでも同様に、あなたの関数のパラメータが見えるのに対し

enter image description here

+0

実行時に 'evt'が' params'プロパティを持つことは確かですか?私はそれがselect2のドキュメントに記載されて表示されません。 – Saravana

+0

@Saravana開発者ツールからのスクリーンショットを追加しました。だから、実行時にプロパティがあります。 – KingKerosin

答えて

0

ビルトインEventタイプは、standard DOM eventを指します。 paramsが実際にselect2ライブラリ固有のプロパティであると仮定すると、TypeScriptファイルのreference a type definition(具体的にはselect2)が必要です。

あなたはparamsプロパティを持つタイプの定義を見つけることができない場合は、SELECT2年代からjQueryの型定義からJQueryEventObjectSelect2JQueryEventObjectのいずれかを拡張するインタフェースを作成することで独自のものを作ることができます。

+0

私は使用している 'select2'の型をチェックしました。また、 'params'が定義されていません... – KingKerosin

+0

それはおそらく入力に問題があるか、' params'は文書化されていないプロパティです。 – Saravana

関連する問題