method_missing(*)

型宣言とは

2022-03-03 (Thu)

概要

.d.tsファイルや その内部に記述されている処理を今までフィーリングで扱っていたので学びなおした。

コードは一切出て来ないよ!


型宣言とは

ライブラリなどでよく見かける「.d.ts」という拡張子を持つファイル や スクリプトモードのファイル(.tsファイル) に存在している宣言。

これはJSDocアノテーションと同様、型付けされていないJavaScriptコードにTypeScriptの型を結びつけるための方法である。

Definitely Typedでは様々なパッケージの型宣言ファイルが公開されている。


通常のTypeScriptの構文の違い

通常のTypeScriptの構文とは少し異なる箇所がある。

  1. 型宣言は型だけを含むことができ、値を含むことはできない

関数・クラス・オブジェクト・変数の実装を持つことはできず、パラメータのデフォルト値を持つことも出来ない。

  1. 型宣言は、JavaScript内のどこかで定義される値が「存在する」ことは宣言できる

専用のキーワードdeclareを使う。

  1. 型宣言は、利用者から見えるものについての型だけを宣言する

エクスポートされない型や、関数の本体内のローカル変数の型のようなものは含まない。


型宣言ファイルの用途

型宣言ファイルは以下の用途で使われている。

  1. どのような型が存在しているかTypeScriptに伝える

コンパイルされたTypeScriptを、ユーザがTypeScriptアプリケーションから使用する時に、 ユーザのTSCインスタンスは、生成されたJavaScriptファイルに対応する.d.tsファイルを探す。

  1. 入力した時に有益な型のヒントを提示

TypeScriptをサポートしているコードエディタは、.d.tsファイルを読み取っている。

  1. TypeScriptをコンパイルして提供することで、コンパイル時間を短縮

ビルド後のJavaScriptと型宣言ファイルを渡すことで、TypeScriptの不必要な再コンパイルを避けることができる。


アンビエント

型宣言について話すときには、値を含む通常の宣言とは区別するために、アンビエントと呼ぶことがある。

アンビエントには、以下の種類が存在する。

  1. アンビエント変数宣言

JavaScript内のどこかで定義されているグローバル変数(process.envなど)についてTypeScriptに伝える

  1. アンビエント型宣言

プロジェクト内のあらゆる場所でグローバルに利用できる型を宣言できる。

  1. アンビエントモジュール宣言

npmyarnを使ってインストールしたサードパーティモジュールについてTypeScriptに伝える。

アンビエントの詳細については、別記事で触れる予定。

文字ばっかりになってしまったので今日はここまで。


参考文献

プログラミングTypeScript ――スケールするJavaScriptアプリケーション開発

TypeScript Deep Dive ――アンビエント宣言(declare)