TypeScript 基本構造
TypeScript プログラムの基本構造はいくつかの部分に分けることができ、各部分には特定の役割があります。
以下は TypeScript プログラムの一般的な構成要素です:
- 宣言部分:型宣言やインターフェース宣言などを含みます。
- 変数宣言:含みます
let,constとvarの使用。 - 関数宣言:通常の関数とアロー関数を含みます。
- クラス宣言:クラスとそのメンバーを定義するために使用します。
- インターフェースと型エイリアス:型の構造を記述します。
- モジュール化:を使って
importとexportコードを整理します。 - 型アサーション:型を強制的に変換します。
- ジェネリック:コードの再利用性を高めます。
- コメント:コードの可読性を高めます。
- 型推論:型を自動的に推論します。
- 型ガード:型の範囲を絞り込みます。
- 非同期プログラミング:をサポートします
async/await。 - エラーハンドリング:によって
try/catchエラーを捕捉します。
以上の各部分が一体となって TypeScript プログラムの基本構造を構成し、開発者に強力な型チェック、コード構造、保守性を提供します。
1. 宣言部分(Declarations)
型宣言:TypeScript は静的型付け言語であり、型宣言を使用して変数、関数、クラスなどの型を定義できます。型宣言はコードの保守性と可読性を高めるのに役立ちます。
例
let age: number = 30;
インターフェース宣言:オブジェクトの構造を定義するために使用し、オブジェクトのプロパティとメソッドを含みます。
例
name: string;
age: number;
}
2. 変数宣言(Variable Declarations)
TypeScript では、let、const、var を使用して変数を宣言できます。let と const の使用が推奨され、var の使用は推奨されません。
例
const pi: number = 3.14;
3. 関数宣言(Function Declarations)
関数宣言:TypeScript では、型注釈付きの関数を宣言できます。これにはパラメータの型と戻り値の型が含まれます。
例
return "Hello, " + name;
}
アロー関数:TypeScript は ES6 のアロー関数もサポートしており、簡潔な構文で関数を宣言できます。
例
4. クラス宣言(Class Declarations)
TypeScript はオブジェクト指向プログラミングをサポートしており、クラスとそのメソッド、プロパティを定義できます。
例
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
return `Hello, my name is ${this.name}`;
}
}
5. インターフェースと型エイリアス(Interfaces & Type Aliases)
インターフェース(Interface):オブジェクトの形状を記述するために使用します。インターフェースは継承および拡張できます。
例
name: string;
sound: string;
makeSound(): void;
}
型エイリアス(Type Alias):オブジェクト型、ユニオン型、交差型などに別名を定義できます。
例
6. モジュールとインポート/エクスポート(Modules & Imports/Exports)
TypeScript はモジュールプログラミングをサポートしており、import と export を使用してコードを整理できます。
エクスポート:
例
constructor(public name: string) {}
}
インポート:
例
7. 型アサーション(Type Assertions)
場合によっては、TypeScript が変数の正確な型を推論できないことがあります。そのような場合、開発者は型アサーションを使用して型を強制的に指定できます。
例
let strLength: number = (value as string).length;
8. ジェネリック(Generics)
ジェネリックは、関数、インターフェース、クラスを定義する際に具体的な型を指定せず、プレースホルダーを使用し、ユーザーが使用時に具体的な型を渡せるようにします。ジェネリックはコードの再利用性と型安全性を高めることができます。
例
return arg;
}
9. コメント(Comments)
コメントは TypeScript プログラムでコードの役割や考え方などを説明し、コードの可読性を高めるために使用します。
単行コメント:
例
複数行コメント:
例
複数行コメントです */
10. 型推論(Type Inference)
TypeScript は状況に応じて変数の型を自動的に推論します。例えば、変数を宣言して値を代入すると、TypeScript はその変数の型を推論します。
例
11. 型ガード(Type Guards)
TypeScript は、typeof や instanceof などの型ガードを提供し、実行時に変数の型の範囲を絞り込むために使用します。
例
return typeof value === 'string';
}
12. 非同期プログラミング(Asynchronous Programming)
TypeScript は非同期プログラミングを完全にサポートしており、async/await 構文を使用して非同期操作を処理できます。
例
const response = await fetch("https://example.com");
const data = await response.text();
return data;
}
13. エラーハンドリング(Error Handling)
TypeScript では、try/catch ブロックを使用してエラーハンドリングを行うことができ、型を使用してエラーの型を記述することもできます。
例
throw new Error("Something went wrong");
} catch (error) {
if (error instanceof Error) {
console.error(error.message);
}
}