概要
.d.tsファイル
や その内部に記述されている処理を今までフィーリングで扱っていたので学びなおした。
コードは一切出て来ないよ!
型宣言とは
ライブラリなどでよく見かける「.d.ts」という拡張子を持つファイル や スクリプトモードのファイル(.tsファイル) に存在している宣言。
これはJSDocアノテーションと同様、型付けされていないJavaScriptコードにTypeScriptの型を結びつけるための方法である。
Definitely Typedでは様々なパッケージの型宣言ファイルが公開されている。
通常のTypeScriptの構文の違い
通常のTypeScriptの構文とは少し異なる箇所がある。
- 型宣言は型だけを含むことができ、値を含むことはできない
関数・クラス・オブジェクト・変数の実装を持つことはできず、パラメータのデフォルト値を持つことも出来ない。
- 型宣言は、JavaScript内のどこかで定義される値が「存在する」ことは宣言できる
専用のキーワードdeclare
を使う。
- 型宣言は、利用者から見えるものについての型だけを宣言する
エクスポートされない型や、関数の本体内のローカル変数の型のようなものは含まない。
型宣言ファイルの用途
型宣言ファイルは以下の用途で使われている。
- どのような型が存在しているかTypeScriptに伝える
コンパイルされたTypeScriptを、ユーザがTypeScriptアプリケーションから使用する時に、 ユーザのTSCインスタンスは、生成されたJavaScriptファイルに対応する.d.tsファイルを探す。
- 入力した時に有益な型のヒントを提示
TypeScriptをサポートしているコードエディタは、.d.tsファイルを読み取っている。
- TypeScriptをコンパイルして提供することで、コンパイル時間を短縮
ビルド後のJavaScriptと型宣言ファイルを渡すことで、TypeScriptの不必要な再コンパイルを避けることができる。
アンビエント
型宣言について話すときには、値を含む通常の宣言とは区別するために、アンビエントと呼ぶことがある。
アンビエントには、以下の種類が存在する。
- アンビエント変数宣言
JavaScript内のどこかで定義されているグローバル変数(process.env
など)についてTypeScriptに伝える。
- アンビエント型宣言
プロジェクト内のあらゆる場所でグローバルに利用できる型を宣言できる。
- アンビエントモジュール宣言
npm
や yarn
を使ってインストールしたサードパーティモジュールについてTypeScriptに伝える。
アンビエントの詳細については、別記事で触れる予定。
文字ばっかりになってしまったので今日はここまで。