22

TypeScript のドキュメントをダウンロードしました。いくつかの JavaScript クラスがあり、TypeScript テスト アプリケーションでこれらのクラスを作成して使用したいと考えています。

含まれている JavaScript の JavaScript 関数を TypeScript から呼び出すにはどうすればよいですか。「d.ts」ファイルを作成したくありません。クラスを作成し、そのメソッドを呼び出し、そのプロパティにアクセスするだけです。

それ、どうやったら出来るの?


TypeScript で kendoUI を使用しようとしています。

たとえば、ウィンドウを表示するには、次のことを行う必要があります。

  1. ウィンドウのコンテンツを表す HTML を用意します。ID logonDialog の div があります。この div
    は最初は非表示になっています。
  2. ウィンドウを作成します: logonDlg.kendoWindow(logOnParams);
  3. 次に、jQuery を使用して div を表示します。logonDlg.show();

var logonDlg = $("logonDialog");

if (!logonDlg.data("kendoWindow")) {
   logonDlg.kendoWindow(logOnParams);
   logonDlg.show();
}

正常に動作しています。JS は希望どおりに生成されますが、タイプ「JQuery」の値にプロパティ「kendoWindow」が存在しないため、エラーが発生します。

この種のエラーを無効にするにはどうすればよいですか。ライアンが言ったように、私はうまくいきませんでした。

4

4 に答える 4

24

If you want to stop the errors without doing much else extra work, you can 'declare' the objects from your JS code:

declare var w; // implicit type here is 'any'
// (later, anywhere in your file...)
var x = new w(); // you can do whatever you want with w now without getting errors
w.x = 4; // etc.
于 2012-10-03T15:18:44.183 に答える
8

より良い解決策があります。jQuery logonDlg を次のようにキャストするだけです。

(<any>logonDlg).kendoWindow(logOnParams);

コードは少し異なりますが、同じように動作します。

  1. キャストがなければ、生成されたコードは次のようになります: logonDlg.kendoWindow(logOnParams);
  2. キャストすると次のようになります: (logonDlg).kendoWindow(logOnParams);

どちらも正常に動作します。

よろしく

于 2012-10-05T17:02:49.983 に答える
4

あなたはそれをするだけです。TypeScript はあなたを止めません。コンパイラの出力に警告が表示されますがtsc、JS ファイルは正常に生成されます。

于 2012-10-03T14:50:13.753 に答える
4

この特定のケースでは、 Telerik が提供するKendo UI TypeScript 定義を含めることができます。

(この質問は、おそらく TS 定義がまだ存在していなかったときに尋ねられたことに気づきましたが、将来この質問に出くわした人々のためにこの詳細を追加したかったのです。)

于 2015-03-30T12:28:13.667 に答える