TypeScript では、インターフェイスはオブジェクトの形状を定義するために使用される強力なツールです。これらは型チェックを強制し、作成したオブジェクトが特定の構造に準拠していることを確認します。ここでは、インターフェイスが一般的に使用されるさまざまなケースを例とともに見ていきます:
インターフェイスは、オブジェクトの構造を定義するためによく使用されます。これにより、インターフェイスに付着しているすべてのオブジェクトが特定のプロパティを持つことが保証されます。
interface User { name: string; age: number; email: string; } const user: User = { name: "John Doe", age: 30, email: "[email protected]" };
インターフェイスでは、? を使用してオプションのプロパティを定義できます。シンボル。これは、オブジェクトがこれらのプロパティを持っている場合も持っていない場合もあるということを意味します。
interface Product { id: number; name: string; description?: string; // Optional property } const product: Product = { id: 1, name: "Laptop" };
プロパティを読み取り専用として定義できます。つまり、初期化後に変更することはできません。
interface Config { readonly apiUrl: string; timeout: number; } const config: Config = { apiUrl: "https://api.example.com", timeout: 5000 }; // config.apiUrl = "https://newapi.example.com"; // Error: Cannot assign to 'apiUrl' because it is a read-only property.
インターフェイスを使用して関数の形状を定義し、パラメーターの型と戻り値の型を指定できます。
interface Login { (username: string, password: string): boolean; } const login: Login = (username, password) => { return username === "admin" && password === "admin123"; }; console.log(login("admin", "admin123")); // true
インターフェイスは他のインターフェイスを拡張でき、既存のものを組み合わせて複雑なタイプを作成できます。
interface Person { name: string; age: number; } interface Employee extends Person { employeeId: number; department: string; } const employee: Employee = { name: "Alice", age: 28, employeeId: 12345, department: "Engineering" };
クラスはインターフェイスを実装でき、インターフェイスの構造に確実に準拠します。
interface Animal { name: string; makeSound(): void; } class Dog implements Animal { name: string; constructor(name: string) { this.name = name; } makeSound() { console.log("Woof! Woof!"); } } const dog = new Dog("Buddy"); dog.makeSound(); // Woof! Woof!
インターフェイスは、特定のタイプの動的キーを持つプロパティを持つオブジェクトを記述することができます。
interface StringArray { [index: number]: string; } const myArray: StringArray = ["Hello", "World"]; console.log(myArray[0]); // Hello
インターフェイスは、関数として機能するオブジェクトと、プロパティを持つオブジェクトとして機能するオブジェクトを定義できます。
interface Counter { (start: number): void; interval: number; reset(): void; } const counter: Counter = (function (start: number) { console.log("Counter started at", start); } as Counter); counter.interval = 1000; counter.reset = () => { console.log("Counter reset"); }; counter(10); console.log(counter.interval); // 1000 counter.reset();
TypeScript を使用すると、同じインターフェイスの複数の宣言をマージできます。これは、大規模なコードベースまたはライブラリを操作する場合に便利です。
interface Box { height: number; width: number; } interface Box { color: string; } const myBox: Box = { height: 20, width: 15, color: "blue" };
TypeScript のインターフェイスは、オブジェクトの形状を定義および強制するための柔軟かつ強力な方法を提供し、強力な型チェックと明確で保守可能なコードを可能にします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3