# 型定義ファイル

`declare`キーワードを使用して他の場所に存在するコードを記述しようとしていることをTypeScriptに伝えることができます(例えば、JavaScript/CoffeeScript/ブラウザやNode.jsのようなランタイム)。簡単な例:

```typescript
foo = 123; // Error: `foo` is not defined
```

対

```typescript
declare var foo: any;
foo = 123; // allowed
```

これらの宣言を `.ts`ファイルまたは`.d.ts`ファイルに入れることができます。実際のプロジェクトでは、分離された`.d.ts`(`global.d.ts`や`vendor.d.ts`のようなものから始まるもの)を使うことを強くお勧めします。

ファイルの拡張子が`.d.ts`の場合、各ルートレベルの定義には`declare`というキーワードを前に付ける必要があります。これは、TypeScriptによって生成されるコードがないことを開発者に対して明確にするのに役立ちます。開発者は、宣言された項目が実行時に存在することを確認する必要があります。

> * アンビエント宣言は、コンパイラとの約束です。これらが実行時に存在せず、それらを使用しようとすると、警告なしにアプリが壊れます。
> * アンビエント宣言はドキュメントに似たものです。ソースが変更された場合、ドキュメントを更新する必要があります。したがって、ランタイムで動作する新しい振る舞いがあるかもしれない場合、アンビエント宣言が更新されていないと、コンパイルエラーが発生します。
