declare は実はどこに書いてもいい。.d.tsファイルじゃなくてもいい。が、アンビエント宣言だけ切り離してまとめておいたほうがいいので、.d.tsファイルがある。.d.ts ファイルに関する特別な扱いの規約・メカニズムも整備されている。
- declare var -- 変数宣言
- declare const -- 定数宣言
- declare let -- 変数宣言(ブロックスコープ内)
- declare function -- 変数の宣言(プロトタイプ、シグニネチャ)
- declare type = -- 型の宣言、実際に型定義する。
- declare class -- クラスの宣言、事実上インターフェイスになる。
- declare namespace -- 名前空間の宣言、インターフェイスっぽくなる。
- declare module -- モジュール(名前空間ではない)の宣言