私はインターネット全体を見ましたが、jqueryなどのライブラリを取得してTypeScriptプロジェクトで使用する方法を説明する包括的なガイドをまだ見つけていません。存在するガイドがある場合、私はこれらが私が本当に知る必要があるものである他の場所を知りたいです:
requires
または//reference
が必要ですか?その場合、実際に何をしているのですか?私は他のほとんどすべてを理解することができましたが、これはかなりイライラしていました。
JqueryをTypeScriptにコンパイルする必要はありません。JavaScriptライブラリの動作をTypeScriptに伝える定義ファイルを使用するだけです。
ここで定義を取得します: https://github.com/DefinitelyTyped/DefinitelyTyped
またはVisual Studioを使用している場合はNuGetから。
次に、通常どおりTypeScriptを記述し、必要に応じてライブラリを宣言します。
declare var library : libraryTypedName
たとえば、jqueryのd.tsファイルは既にこれを実行しています(下を確認)。
declare module "jquery" {
export = $;
}
declare var jQuery: JQueryStatic;
declare var $: JQueryStatic;
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jquery
.ts
入力したファイル$
これは、TypeScriptインテリセンスを提供するはずです。
これで、bundleconfig/<script>
は.jsファイルで、あなたのものとjquery /その他のライブラリの両方です。 TypeScriptはコンパイル時のみです!
TypeScriptの規則では、これらの外部参照を取り込むプロジェクトにreference.ts
またはreference.d.ts
ファイルを使用します。
したがって、reference.ts
ファイルでjquery.d.ts
にパスを追加します(パスはreference.tsファイルに相対的です)。
/// <reference path="../relative/path/to/jquery.d.ts"/>
その後、プロジェクトでjQuery定義を使用できるようになります。
注:reference.tsファイルは規則ですが、必要に応じて、TypeScriptファイルに<reference path="..."/>
ディレクティブを実際に追加できます。
TypeScript言語仕様(PDF) 11.1.1から:
/// <reference path="…"/>
という形式のコメントは、path引数で指定されたソースファイルへの依存関係を追加します。パスは、含まれているソースファイルのディレクトリを基準にして解決されます。
私はVS 2015でそれを使用していますが、TypeScriptは初めてです。私のプロジェクトではjQueryとリーフレットを使用しました。私の解決策は次のとおりです。
https://taco.visualstudio.com/en-us/docs/get-started-first-mobile-app/
これらの行を追加して、index.htmlファイルを変更します。
<link rel="stylesheet" href="css/jquery.mobile-1.4.5.min.css" />
<link rel="stylesheet" href="css/leaflet.css" />
<script src="scripts/jquery-2.2.3.min.js"></script>
<script src="scripts/jquery.mobile-1.4.5.min.js"></script>
<script src="scripts/leaflet-0.7.3.min.js"></script>
Index.tsファイルを変更します。最初にこれらの行を上に追加して、ライブラリを参照します。パスを変更する必要がある場合があります。
OnDeviceReady()内に獲得したコードを追加します。そうしないと、sysmbol "$"が定義されていないなどのjavascriptランタイムエラーが発生する可能性があります。これは、デバイスがまだ準備ができていないときにコードが何らかの機能をロードしようとするためだと思います。これは私のために働いた。それがあなたにも役立つことを願っています。
function onDeviceReady() {
document.addEventListener('pause', onPause, false);
document.addEventListener('resume', onResume, false);
var parentElement = document.getElementById('deviceready');
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
// your code goes here
}
このソリューションはTypeScriptの純粋主義者向けではありません:)が、1行のソリューションが必要な場合は、次の行を.tsファイルに追加してください。
declare var $: any
そして、$
jsコードを使用しているかのように、TypeScriptコードのどこにでも。