モジュールのレッスン (2/2)
宣言とマージ
型宣言ファイル (.d.ts 拡張子付き) は、実際のロジックを実装せずに、既存の JavaScript コードの形状を記述するために TypeScript で使用されます。これらには、型定義、インターフェイス、および関数シグネチャのみが含まれます。
これらのファイルは、純粋な JavaScript で記述されたサードパーティ ライブラリを使用する場合に不可欠です。
宣言のマージ
宣言のマージ は、コンパイラが同じ名前で宣言された 2 つ以上の別々の宣言を 1 つの定義にマージする動作です。
最も一般的なケースは インターフェイス のマージです。
interface User {
name: string;
}
interface User {
age: number;
}
// The resulting User interface has both name and age properties!
const student: User = {
name: 'Alice',
age: 23,
};プロパティが同じ名前を共有する場合、それらは同じ型である必要があります。そうでない場合、TypeScript はエラーを報告します。
グローバルモジュールと外部モジュールの変更
宣言のマージを使用して、他のモジュールまたはグローバル スコープで定義されたインターフェイスを拡張できます。
たとえば、ブラウザのグローバル window オブジェクトにプロパティを追加する場合は、次のようにします。
declare global {
interface Window {
analyticsToken: string;
}
}declare global を使用することで、既存のグローバル Window インターフェイスに新しい署名を挿入していることを TypeScript に伝えます。
自分で試してみてください
演習 1: 基本的な宣言のマージ
TypeScript では、同じスコープ内の同じ名前のインターフェイスは自動的にマージされます。プロパティ名: string を使用してインターフェイス User を宣言し、次に 2 番目のブロックで同じインターフェイス User を宣言し、プロパティ age: number を追加します。最後に、適切な値を使用して User 型の定数ユーザーを宣言します。
ヒントを表示
インターフェイス User を 2 回宣言し、それぞれのプロパティを挿入して、フィールドをユーザー オブジェクトに割り当てます。
3 回の試行後に解決策が利用可能になります
演習 2: グローバル ウィンドウ インターフェイスの拡張
グローバル Window インターフェイスを拡張して、Record<string, string> タイプの config という名前のカスタム プロパティを追加するとします。新しいプロパティをグローバル Window インターフェイスにマージするには、declare global を使用して正しい宣言を記述します。
ヒントを表示
使用する宣言グローバル { インターフェイス Window { config: Record<string, string>; } }。
3 回の試行後に解決策が利用可能になります