【Angular】declareで宣言したオブジェクトに型宣言をする

declare宣言でもany宣言しなくてもよい

index.htmlで<javascript></javascript>を呼びし、コンポーネント内でその変数(関数も含む)を使用するときはdeclare宣言を使用し、すでに変数が存在するとみなしてコンパイルすることができる。型をanyにしても良いが、それではTypeScriptの長所を生かせないし、なにより補完ができずコーディングの効率が落ちる。

codemirrorでの例

codemirrorでは、index.htmlにjavascriptとcssを呼び出すので下記のようにhead部分に追加する必要がある

純粋なJavaScriptなら下記のように使用する。

TypeScriptで型宣言をしない場合

declareに型宣言を使用する

まず、型宣言ファイルをインストールする。@typesリポジトリにあることを祈る。

import * as [任意の名前A] from 'codemirror'でimportをするが、これは型宣言のためだけの宣言でありimportしたものを使用する訳ではない。なぜならindex.htmlですでに変数が存在するからである。実際に使用する変数はdeclareで宣言した変数で型宣言を行う場合はtypeofをつけてdeclare var CodeMirror: typeof [任意の名前A];のように記載する。

これでコード補完もできるし、存在しない関数やプロパティを参照しようとするとコンパイルエラーも出る。なにより型定義ファイルはドキュメントの機能も果たすので幸せになれる。

スポンサーリンク
レタリング(大)広告
レタリング(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レタリング(大)広告