web-dev-qa-db-ja.com

typescript内の参照JavaScriptファイル

TypeScriptファイル内でjavascript関数を使用したいと思います。 TypeScriptファイル内でその関数を含むjavascriptファイルを参照するにはどうすればよいですか?

私は試した

<reference path="../libs/myjsfile.js" />

次のようなビルド中にエラーが発生します:Cannot resolve referenced file: ../libs/myjsfile.js

31
user1160771

上記の2つの答えは、小さいまたは単一の変数APIで機能しますが、正しい答えはJavaScriptファイルの型宣言ファイルを書くことです。

あなたの例の型宣言ファイルはmyjsfile.d.tsという名前になります。。d.ts接尾辞は、TypeScriptコンパイラに解析中であることを伝えます宣言ファイル。 Visual Studioを使用している場合、作業中のプロジェクトのどこか(どこでも)にある限り、宣言ファイルはTypeScriptコンパイラーによって認識されます。

宣言ファイルには、JavaScript変数、関数、およびオブジェクトに関するメタデータが格納されているため、TypeScriptコンパイラーはその役割を果たします。 JavaScriptファイルがたまたま一般的に使用されているライブラリまたはフレームワークである場合、 DefinitelyTyped が間違いなく必要な定義ファイルを見つける場所です。

JavaScriptがあなた自身の作品であるか、あまり知られていない場合は、独自の型宣言ファイルを作成する必要があります。 TypeScriptハンドブック のセクション。d.tsファイルの書き込みを参照してください。

名前宣言ファイルが威圧的に聞こえる場合でも、心配しないでください。プログラムよりもはるかに簡単に記述できます。また、JavaScriptファイルのすべてのメタデータを指定する必要はなく、必要な機能のみを指定する必要があることに注意してください。

ヘルプが必要な場合はお知らせください!

37
Doug

メソッドがTypeScriptの外部に存在することをコンパイラーに伝える必要があります。

declare function myJavaScriptFunction(param1: number, param2: JQuery): void;

Webサイトが、必要なすべてのファイル、通常のjsファイル、およびTypeScriptコンパイラーが生成したjsファイルをロードするようにしてください

8
A. K-R

GitHubのTypeScriptハンドブック で、TypeScriptドキュメントの最新バージョンを確認できます。

また、コミュニティ主導の DefinitelyTyped リポジトリからTypeScript定義ファイルを直接検索してインストールする tsd ユーティリティをお勧めします。このリポジトリには、最も一般的なjavascriptライブラリの定義ファイル*。d.tsが含まれています。

0
Roman

次のようなビルド中にエラーが発生します:参照ファイルを解決できません:../libs/myjsfile.js

参照ファイルのタグは、JavaScriptではなくTypeScript用です。ページ内のスクリプトタグ(またはrequirejsなど)を使用してJavaScriptをロードします。

TypeScriptからJavaScriptを使用するには、declare TypeScriptの消費に使用するjavascriptのAPI(AKRが指摘したとおり)を使用します。

0
basarat