2016-03-21 9 views
4

私はすでに他のSOの質問を見ました。しかし、私の質問とはまだ混同しています。

私はそのタイプ定義 (.d.ts)ファイルを使用せずangular2 appで直接Jquery(js)Toastr(js)toastr without typingsおよびその他のJSライブラリを使用する多くの例を見てきましたし、彼らはうまく動作します。

だから、

1)基本的に何が増減ですか、タイプ定義ファイルには行かないのですか?タイプ定義(.d.ts)がTypescript - Angular2であるのはなぜですか?

2)Angular2ファイルは、javascriptファイルです。では、型定義ファイル はどうですか?

注:私はあなたが実際にAngualr2 packageをインストールするとき、それはtypingsフォルダ内のすべての関連t.dsのファイルを追加した場合ので、私は知らないNPMで試していません。

答えて

9

Typescript定義ファイルには、Javascriptで記述されたコードのタイプ情報が含まれています。

Javascriptには型情報自体が含まれていないので、Typescriptは魔法のようにその情報を取得できません。その問題を解決するために、どのタイプがどこで使用されているかをTypescriptに伝える定義ファイルが作成されます。

したがって、定義ファイルなしでサードパーティのライブラリを使用することはできますが、Typescriptが提供する型の安全性は失われます。

たとえば、jQuery定義ファイルをインクルードすると、IDEはjQuery APIのインテリセンス/自動提案を提供できるようになります。また、Typescriptコンパイラは、文字列が必要な関数にブール値を渡そうとすると警告が表示されます。

したがって、Typescriptが動作するために定義ファイルは必要ありませんが、それがなければTypescriptが提供する多くの利点を失います。

+1

最初に、訂正していただきありがとうございます.2番目は究極的に '.d.ts'ファイルを追加するかどうかは関係ありません。 – micronyks

+0

私は常にタイプ情報が必要なので、私はいつもそれらを追加します。タイピングをしたくない場合はなぜTypescriptを使用しますか?型の安全性は、コード内のエラーを捕らえるのに役立ち、使用できるものに関するヒントを提供することで、コードを高速化できます。編集:より直接あなたの質問に答える...彼らはコードを動作させる必要はありません。しかし、それらは開発プロセスにおいて多くの価値を付加します。 – AndyJ

+0

お返事ありがとうございます...しかし、まだ数分待って、何か他の人が何か言いたいのか見てみましょう。私はそれを答えとして受け入れます。 – micronyks

関連する問題