TypeScript における `declare` キーワードの目的 質問する

TypeScript における `declare` キーワードの目的 質問する

キーワードの意味は何ですかdeclare?

type Callback = (err: Error | String, data: Array<CalledBackData>) => void;

declare type Callback = (err: Error | String, data:Array<CalledBackData>) => void;

declareTS でキーワードの目的を説明するドキュメントが見つかりません。何の意味ですか?

ベストアンサー1

要約

declareは、コンパイラーに「このもの (通常は変数) はすでに存在するため、他のコードから参照できます。また、このステートメントを JavaScript にコンパイルする必要はありません」と伝えるために使用されます。

一般的な使用例:

コンパイラが何も知らない JavaScript ファイルへの参照を Web ページに追加します。おそらく、それは「foo.com」のような他のドメインからのスクリプトです。評価されると、スクリプトはいくつかの便利な API メソッドを持つオブジェクトを作成し、それをグローバル スコープの識別子「fooSdk」に割り当てます。

TypeScript コードで を呼び出せるようにしたいのですfooSdk.doSomething()が、コンパイラは変数の存在を認識しないためfooSdk、コンパイル エラーが発生します。

次に、declareキーワードを使用して、コンパイラーに「この変数は存在し、この型を持っています」と伝えます。コンパイラーはこのステートメントを使用して他のコードを静的にチェックしますが、出力内の JavaScript にトランスコンパイルすることはありません。

declare const fooSdk = { doSomething: () => boolean }

新しい Typescript バージョンでは、若干異なる構文が必要です。

declare const fooSdk : { doSomething: () => boolean }

同様に、クラス プロパティに宣言キーワードを追加して、コンパイラが認識または理解しない、このプロパティを作成する独自のコードがある場合に、このプロパティを作成するコードを生成しないようにコンパイラに指示することができます。

変数ではなく型を宣言しているため、特定の例は異なります。型は JavaScript にコンパイルされません。型を宣言する理由があるかどうかはわかりません。

おすすめ記事