4

TypeScript初心者向けチュートリアル

分かりやすい例と適度な説明で、Step by StepにTypeScriptの基礎を習得できるチュートリアルを目指します。

1. TypeScriptとは

TypeScriptは、JavaScriptのスーパーセットであり、静的型付け言語です。JavaScriptと互換性があり、JavaScriptのコードはそのままTypeScriptで使用できます。

静的型付け言語とは、変数や関数の型を明示的に定義する言語です。これにより、コードの型安全性が向上します。

2. TypeScriptの基本的なデータ型

TypeScriptの基本的なデータ型(boolean, number, string, array, tuple, enum, any, voidなど)を解説します。

TypeScriptの基本的なデータ型について説明します。

  • boolean - trueまたはfalseの論理型
let isDone: boolean = false;
  • number - 整数や浮動小数点数などの数値型
let count: number = 10;
  • string - 文字列型
let message: string = 'Hello'; 
  • array - 配列型
let list: number[] = [1, 2, 3];
  • tuple - 要素の型が決まっている配列
let tuple: [string, number] = ['foo', 1];
  • enum - 列挙型
enum Color {Red, Green, Blue};
let c: Color = Color.Green;
  • any - 型チェックを行わない型
let value: any = 'foo';
  • void - 返り値のない関数の返り型
function print(): void {
  console.log('foo');
}

以上が代表的なTypeScriptの基本的なデータ型です。

3. TypeScriptの基本的な文法

それではTypeScriptの基本的な文法(変数宣言、関数定義、クラス定義、インターフェース定義)について、説明していきます。

  • 変数宣言
let message: string = 'Hello';

型注釈を用いて変数の型を指定できます。

  • 関数定義
function add(x: number, y: number): number {
  return x + y;
}

パラメータと返り値に型を定義できます。

  • クラス定義
class Person {
  name: string;
  constructor(name: string) { 
    this.name = name;
  }
}

フィールドとコンストラクタに型を指定できます。

  • インターフェイス定義
interface IPerson {
  name: string;
  greet(): void;
}

プロパティとメソッドの型を定義できます。

このように、TypeScriptでは変数、関数、クラス、インターフェイスの定義時に型情報を追加でき、コードの静的解析を強化できます。

4. TypeScriptのコンパイラの使い方

コンパイラの使い方も重要なので、tscコマンドでのコンパイル方法を解説します。

TypeScriptファイルは拡張子が.tsです。

tscコマンドを使って、これをJavaScriptにコンパイルできます。

tsc hello.ts

このコマンドを実行すると、hello.jsファイルが生成されます。

tscには様々なオプションがあります。

  • --watch ファイルの変更を監視し、自動的にコンパイル
  • --target ES5など、コンパイル後のJSのバージョンを指定
  • --module コンパイル後のモジュール化の種類を指定

などが主なオプションです。

tsc --watch --target ES5 hello.ts

のようにオプションを組み合わせて実行できます。

tsconfig.jsonファイルを使えば、コンパイル時の設定をJSONに記述することもできます。

5. 簡単なTodoアプリの作成

簡単なTodoアプリの作成を通して、実践的にTypeScriptを使う方法をデモします。

  • Todoアイテムを表すTodoクラスを定義
class Todo {
  constructor(public id: number, public title: string, public done: boolean = false) {
  }
}
  • Todoリストを表すTodoListクラス
class TodoList {
  // ...
} 
  • HTMLとの紐付け
const todoInput = document.getElementById('todo-input')! as HTMLInputElement;
  • フォーム送信時のイベントハンドラ
form.addEventListener('submit', e => {
  // 新しいTodoアイテムの作成
  // TodoListへの追加
})
  • Todoリストの描画処理
function renderTodos(todos: Todo[]) {
  // ...
}

6. TypeScriptのメリット

TypeScriptのメリットとしては以下の2つが大きいと考えます。

  • 静的型チェック
  • IDEサポート

静的型チェックは、コンパイル時に型エラーをキャッチできる点です。

function add(x: number, y: number) {
  return x + y; 
}
 
add('1', '2'); // コンパイルエラー

IDEでコード補完やリファクタリングをサポートしてくれるのも強力なツールです。

この2つのメリットは、大規模なアプリ開発においてバグを減らし、プロダクティビティを上げることができます。

まとめ

このチュートリアルでは、TypeScriptの基本的な概念や構文を学びました。

TypeScriptは、JavaScriptの経験があれば比較的簡単に学習することができます。

このチュートリアルを参考にして、TypeScriptをマスターしましょう。

補足

より高度な内容を学びたい場合は、以下のリソースを参考にしてください。

  • TypeScriptの公式ドキュメント
  • TypeScriptのチュートリアルや教材
  • TypeScriptのコミュニティ

また、TypeScriptのフレームワークやライブラリを使用したい場合は、それぞれのドキュメントやチュートリアルを参照してください。