2018年07月27日

JavaScriptでwindow.externalを使用してC#と通信するものをTypeScriptで書いてみる

開発部だより 第396回


TypeScriptでもJavaScriptと同じで、

と書けばC#のhoge();を呼ぶ事が出来ます。
しかし上の画像のように静的チェックでエラーが出てしまいます。
hoge();はC#に自分で追加した関数なので、TSからすれば「そんな関数は知らない」のでエラーになるのはまあ当り前です。

そこでこれがエラーにならないようにwindow.externalにhoge();メソッドを追加します。

TSはwindow.externalまで認識できるので、externalにinterfaceでメソッドを追加してあげれば良いわけです。方法はwindowオブジェクトに直接メソッドを追加するのと同じです。

これでエラーが無くなり、めでたしめでたし。
としたかったのですがtslintの標準設定ではinterfaceは大文字の「I」から始めないとエラーになります。「IExternal」などとするわけにもいかず、そこはルールを変更するしかないのか悔しいです。

ですがmoduleに入っている場合は良い方法があります。

これならばtslintも含めてエラー無しに出来ます。


Window.FormとJavaScriptの連携は、SATT smart教材作成ツールではクイックメニューで現在も使用してします。
今後これを更に使いやすいものにするため努力しております。
posted by 開発部OliveDrab at 18:23
開発部だより | コメント(0)
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。