はじめに

TypeScript とは

このエントリーをはてなブックマークに追加
最終更新日 2016-12-31

本ドキュメント「TypeScript プログラミング」は、TypeScript を利用したプログラミングについてのドキュメントです。

TypeScript とは

TypeScript とは、大規模 JavaScript アプリケーション開発向けに Microsoft が設計したオープンソース (Apache License 2.0) のプログラミング言語です。 TypeScript で書かれたソースは TypeScript コンパイラによって JavaScript に変換されます。 TypeScript には次のような特徴があります。

TypeScript は、静的型付け言語であり、コンパイル時の型チェックや開発ツールによるインテリセンス機能のような恩恵を受けられます。 型は、型注釈によって明示的に指定するほか、型推論によって暗黙的に指定することもできます。

// 型注釈
// 変数 result1 は数値 (Number) 型である
var result1: number = 1;

// 型推論
// 変数 result2 は数値 1 で初期化することによって数値 (Number) 型に推論される
var result2 = 1;

JavaScript にコンパイル可能な言語としては他に CoffeeScript や Google の Dart などが知られていますが、 これらが他の言語から影響を受けた文法や JavaScript の置き換えに重点を置くのに対し、 TypeScript は JavaScript のシンタックスシュガーであると同時に、JavaScript の標準化仕様である ECMAScript を意識して設計されています。 そのため JavaScript のコードは TypeScript のコードとしても動作するとされており、学習コストが低く、 既存の JavaScript コードから比較的容易に TypeScript コードに移行できることが期待されます。

// この JavaScript のコードは、TypeScript のコードでもある
function greet(message) {
    return "Hello, " + message;
}
var result = greet("TypeScript");

TypeScript は ECMAScript 6 で提案されているクラス、インターフェイス、モジュールのような構文をサポートしており、 これらの構文によってプログラマは一般的なオブジェクト指向プログラミングで開発することが可能となります。

// TypeScript のクラス
class Greeter {
    private greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    public greet() {
        return "Hello, " + this.greeting;
    }
}

また、TypeScript コンパイラが生成する JavaScript は最適化されないため、 TypeScript が JavaScript でクラスやモジュールを実装する方法を容易に確認することができます。

// コンパイル後の JavaScript のクラス
var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

このように、TypeScript プログラミングでは、JavaScript プログラミングとオブジェクト指向プログラミングの経験があるとより理解しやすいでしょう。 なお、本ドキュメントはそれらの基本的な知識があることを前提としています。

最後に、本ドキュメントの作成は学習と同時進行であるため、 更新は不定期で行われることをご了承ください。また、できる限り情報の正確性に注意を払うつもりですが、 必ずしもその内容を保証するものではありません。