サーチ…


前書き

既存のJavaScriptライブラリの中には型定義ファイルがありますが 、そうでないものもあります。

TypeScriptは、欠落している宣言を処理するための2つのパターンを提供します。

任意のグローバル宣言

特に単純なプロジェクトでは、 any型のグローバルを宣言するのが最も簡単な場合があります。

jQueryに型宣言がない場合( それはそうです )、あなたは

declare var $: any;

これで、$の使用には何も入力されany

任意のデフォルトをエクスポートするモジュールを作成する

より複雑なプロジェクトや、徐々に依存関係を入力する予定の場合は、モジュールを作成する方がクリーンかもしれません。

例として、JQueryを使用しています (ただし、入力は可能です )。

// place in jquery.d.ts
declare let $: any;
export default $;

そして、あなたのプロジェクトのどのファイルでも、次のようにこの定義をインポートすることができます:

// some other .ts file
import $ from "jquery";

このインポートの後、 $anyとしてタイプされany

ライブラリに複数のトップレベル変数がある場合は、代わりに名前でエクスポートおよびインポートを行います。

// place in jquery.d.ts
declare module "jquery" {
   let $: any;
   let jQuery: any;

   export { $ };
   export { jQuery };
}

両方の名前をインポートして使用することができます。

// some other .ts file
import {$, jQuery} from "jquery";

$.doThing();
jQuery.doOtherThing();

周囲モジュールを使用する

インポートの意図を示すだけで(グローバルを宣言したくないので)、明示的な定義を気にしたくない場合は、アンビエントモジュールをインポートできます。

// in a declarations file (like declarations.d.ts)
declare module "jquery";    // note that there are no defined exports

その後、環境モジュールからインポートすることができます。

// some other .ts file
import {$, jQuery} from "jquery";

上記の宣言されたモジュール( $jQueryようなもの)からインポートされたものはany型です



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow