typescriptの高度な型宣言の方法は何ですか?
TypeScriptでは、高度な型を宣言するためのさまざまな方法があります。以下はその中でもよく使われる方法の一部です:
- 交差型(Intersection Types)を使用する:&記号を使って複数の型を組み合わせる。例:type Person = { name: string } & { age: number }。
- Union Typesを使用する:複数の型を|で結合する。例:type Result = Success | Failure。
- 型エイリアスの使用: 型キーワードを使用して、ある型に別名をつける。例: type Age = number。
- ジェネリックの使用:ジェネリックの種類を定義するために尖括弧を使用し、必要な場所で具体的な種類を渡すことができます。例:function identity(arg: T): T { return arg; }。
- 条件付きの型(Conditional Types):条件によって型を決定する。例えば:type ReturnType = Tが(…args: any[]) => infer Rに拡張される場合、Rを返す。それ以外の場合はanyを返す。
- 既存の型に基づいて新しい型を生成する「マッピング型」を使用します。例:type Readonly = { readonly [P in keyof T]: T[P] }。
これらの方法は単独で使用することも、組み合わせて使用することもでき、必要に応じて複雑な高度なタイプを宣言することができます。