この記事の目的
今やビジネスにおいてコンピュータ・情報・通信などを中心とする「IT用語」に対する知識は欠かせません。
あまり馴染みがない各分野のIT用語を、なるべく専門用語を使わずに解説していきます。
この記事の対象読者
Web制作を始めたばかりの人。
自社のWebマーケティングを任された人。
専門用語についていろいろ知りたい人。
Webマーケティングを行なっているが、言葉の定義を再確認したい人。
など、Webに限らずDXに携わるすべての方に。
TypeScriptとは
TypeScriptはMicrosoftによって開発されたプログラミング言語で、JavaScriptに対して型指定機能を追加したものです。TypeScriptを使用することで、JavaScriptのコードをより型安全に書くことができ、バグを予防することができます。また、TypeScriptはJavaScriptの新しい機能を使用することもでき、JavaScriptのコードをよりスケーラブルなものにします。TypeScriptはオープンソースであり、主にWebアプリケーション開発に使用されています。
TypeScriptの特徴とJavaScriptとの違い
TypeScriptは、JavaScriptに対して型指定機能を追加したプログラミング言語であり、以下の特徴を持っています
型指定:
TypeScriptでは、変数や関数の引数、戻り値などに対して型を指定することができます。JavaScriptは型指定をサポートしておらず、型は実行時に決まります。型指定をすることで、変数や関数の型が明確になり、実行時に型エラーが発生する可能性を最小限に抑えることができます。また、エディタやIDEが自動的に変数や関数の型情報を推測し、インテリセンスサポートを提供するため、開発効率も向上します。
型指定には、以下のような型が用意されています
- 数値型: 整数や浮動小数点数を表す number 型
- 文字列型: 文字列を表す string 型
- 論理型: true/false を表す boolean 型
- 配列型: 配列を表す Array<T> 型
- タプル型: 固定長の要素を持つ配列を表す [T1, T2, …, Tn] 型
- 構造体型: オブジェクトを表す { key1: T1, key2: T2, … } 型
- 関数型: 関数を表す (arg1: T1, arg2: T2, …) => T 型
- その他: any型、unknown型、never型など
静的型付け
TypeScriptは静的型付けを採用しており、コンパイル時に型チェックを行います。JavaScriptは動的型付け言語であり、実行時に型チェックを行います。
静的型付けとは、プログラミング言語において、変数や関数の型を事前に宣言することを指します。
静的型付けは、変数や関数に対して事前に型を定義し、それがどのような型であるべきかをコンパイラに伝えることで、実行時に型エラーが発生する可能性を最小限に抑えることができます。また、エディタやIDEが自動的に変数や関数の型情報を推測し、インテリセンスサポートを提供するため、開発効率も向上します。
対照的に、動的型付けには変数や関数に対して型を宣言しない方式で、実行時に変数や関数がどのような型であるかを判断することを指します。 JavaScriptは動的型付け言語です。
インターフェイス
TypeScriptでは、インターフェイスを使用して、オブジェクトのプロパティやメソッドを定義することができます。JavaScriptはインターフェイスをサポートしておらず、プロトタイプベースのオブジェクト指向プログラミングを行います。
TypeScriptのインターフェイスは、オブジェクトが持つプロパティやメソッドのシグネチャを定義し、それを実装するクラスやオブジェクトが適合するかどうかをチェックするための機能です。インターフェイスは、オブジェクト指向プログラミングにおいて、クラスやオブジェクトがどのようなプロパティやメソッドを持つべきかを定義する役割を持ちます。インターフェイスは、オブジェクトが特定のインターフェイスを実装していることを保証するために使用され、変数や関数の引数や戻り値の型として使用することができます。
interface Person {
name: string;
age: number;
sayHi(): void;
}
上記のようにインターフェイスPersonを定義し、それを実装するクラスやオブジェクトが name, age, sayHiのプロパティを持つことを保証します。
class Student implements Person {
name: string;
age: number;
sayHi() {
console.log(`Hi, my name is ${this.name}`);
}
}
これにより、StudentクラスがPersonインターフェイスを実装していることが保証され、予期せぬエラーを防ぐことができます。
インターフェイスは、多くのオブジェクト指向言語に共通して存在します。
クラス
TypeScriptでは、クラスを使用して、オブジェクト指向プログラミングを行うことができます。JavaScriptはECMAScript 2015以降でクラスをサポートしました。
モジュール
TypeScriptでは、モジュールを使用して、複数のファイルを組み合わせてアプリケーションを構築することができます。JavaScriptはECMAScript 2015以降でモジュールをサポートしました。
互換性
TypeScriptはJavaScriptと互換性が高いため、既存のJavaScriptのコードを簡単にTypeScriptに変換することができます。
既存のフレームワークとの関係
TypeScriptは、React、Angular、Vue.jsなどの主要なJavaScriptフレームワークと互換性が高く、現在多くの企業や開発者に採用されています。
項目 | TypeScript | JavaScript |
型指定 | あり | なし |
静的型付け | あり | なし |
インターフェイス | あり | なし |
クラス | あり | ECMAScript 2015以降で実装 |
モジュール | あり | ECMAScript 2015以降で実装 |
互換性 | JavaScriptと互換性が高い | – |
エコシステム | React, Angular, Vue.jsなどの主要なJavaScriptフレームワークと互換性が高い | – |
まとめ
TypeScriptはJavaScriptのスーパーセットで、静的型付け、クラス、インターフェイス、モジュールなどの機能を追加したプログラミング言語です。開発効率を上げ、実行時のエラーを減らすことができます。