TypeScript 基本構文
TypeScript プログラムは以下の部分から構成されています:
- モジュール
- 関数
- 変数
- 文と式
- コメント
最初の TypeScript プログラム
次の TypeScript プログラムを使用して "Hello World" を出力できます:
上記のコードは、まず次のtscコマンドでコンパイルします:
tsc サンプル.ts
次のような js コードが得られます:
サンプル.js ファイルのコード:
最後に node コマンドを使用してその js コードを実行します。
$ node サンプル.js Hello World
全体の流れを下図に示します:

複数の ts ファイルを同時にコンパイルできます:
tsc file1.ts file2.ts file3.ts
tsc の一般的なコンパイルパラメータは次の表のとおりです:
| 番号 | コンパイルパラメータの説明 |
|---|---|
| 1. | --help ヘルプ情報を表示 |
| 2. | --module 拡張モジュールをロード |
| 3. | --target ECMA バージョンを設定 |
| 4. | --declaration 追加で .d.ts 拡張子のファイルを生成します。 tsc ts-hw.ts --declaration 上記のコマンドは ts-hw.d.ts と ts-hw.js の2つのファイルを生成します。 |
| 5. | --removeComments ファイルのコメントを削除 |
| 6. | --out 複数のファイルをコンパイルして1つの出力ファイルに結合 |
| 7. | --sourcemap sourcemap (.map) ファイルを生成します。 sourcemap は、ソースコードとコンパイル済みコードの対応する位置のマッピングを格納する情報ファイルです。 |
| 8. | --module noImplicitAny 式と宣言に暗黙の any 型がある場合にエラーを報告 |
| 9. | --watch ウォッチモードでコンパイラを実行します。出力ファイルを監視し、それらが変更されたときに再コンパイルします。 |
TypeScript 予約語
TypeScript の予約語は次の表のとおりです:
| キーワード | 説明 |
|---|---|
abstract | 抽象クラスまたは抽象メソッドを定義するために使用されます。 |
any | 任意の型を表し、型チェックを無効にします。 |
as | 型アサーション。ある型を別の型に変換するために使用されます。 |
await | 非同期関数内で使用され、Promise が解決されるまでコードの実行を一時停止します。 |
boolean | 真偽値(boolean)型を表します。 |
break | ループまたは switch 文を終了します。 |
case | switch 文内の分岐に使用されます。 |
catch | 例外をキャッチするために使用されます。 |
class | クラスを定義するために使用されます。 |
const | 定数変数を定義します。 |
continue | 現在のループをスキップして、次のループを続行します。 |
debugger | デバッガを起動し、コードの実行を一時停止します。 |
declare | 変数またはモジュールを宣言します。通常は型宣言ファイルで使用されます。 |
default | switch 文のデフォルト分岐を定義します。 |
delete | オブジェクトのプロパティまたは配列の要素を削除します。 |
do | 使用されるdo...whileループ。 |
else | 条件文の else 部分を定義します。 |
enum | 列挙型を定義します。 |
export | モジュールから変数、関数、またはクラスをエクスポートするために使用されます。 |
extends | クラスの継承に使用されます。クラスが他のクラスを継承することを示します。 |
false | 真偽値false。 |
finally | 定義try...catch文の中で最後に実行されるコードブロック。 |
for | 使用されるforループ。 |
from | モジュールインポート文に使用され、モジュールのソースを指定します。 |
function | 関数を定義します。 |
get | オブジェクトの getter メソッドに使用されます。 |
if | 条件判断に使用されます。 |
implements | クラスがインターフェースを実装するために使用されます。 |
import | モジュールからコンテンツをインポートするために使用されます。 |
in | オブジェクトに指定されたプロパティが含まれているかをチェックするために使用される、またはfor...inループ。 |
infer | 条件型内で型を推論するために使用されます。 |
instanceof | オブジェクトが指定されたクラスのインスタンスであるかをチェックします。 |
interface | インターフェースを定義するために使用されます。 |
let | ブロックスコープの変数を定義します。 |
module | モジュールを定義します(初期の TypeScript バージョンで使用)。 |
namespace | 名前空間を定義します(初期の TypeScript バージョンで使用)。 |
new | クラスのインスタンスを作成します。 |
null | ヌル値を表します。 |
number | 数値型を表します。 |
object | 非プリミティブ型を表します。 |
of | 使用されるfor...ofループ。 |
package | モジュールシステムで使用され、パッケージを識別します。 |
private | クラスメンバーのアクセス修飾子に使用され、プライベートを表します。 |
protected | クラスメンバーのアクセス修飾子に使用され、プロテクテッドを表します。 |
public | クラスメンバーのアクセス修飾子に使用され、パブリックを表します。 |
readonly | 読み取り専用プロパティを表します。 |
require | CommonJS モジュールをインポートするために使用されます。 |
return | 関数を終了し、値を返すことができます。 |
set | オブジェクトの setter メソッドに使用されます。 |
string | 文字列型を表します。 |
super | 親クラスのメソッドまたはコンストラクタを呼び出すために使用されます。 |
switch | switch 文に使用されます。 |
symbol | シンボル型を表します。 |
this | 現在のクラスまたはオブジェクトのインスタンスを参照します。 |
throw | 例外をスローします。 |
try | 例外処理文に使用されますtry...catch。 |
true | 真偽値true。 |
type | 型エイリアスを定義するために使用されます。 |
typeof | 変数または式の型を取得します。 |
undefined | 未定義の値を表します。 |
unique | 使用されるsymbol型の一意の識別子。 |
var | 変数を宣言するために使用されます(推奨されていません)。 |
void | 戻り値のない型を表します。 |
while | 使用されるwhileループ。 |
with | スコープを作成するために使用され、そのスコープ内ではオブジェクトの参照を省略できます(推奨されません)。 |
yield | ジェネレータ関数内で使用され、ジェネレータの実行を一時停止および再開します。 |
空白と改行
TypeScript はプログラム内のスペース、タブ、改行を無視します。
スペースやタブは通常、コードのインデントに使用され、コードを読みやすく理解しやすくします。
TypeScript は大文字と小文字を区別します
TypeScript は大文字と小文字の文字を区別します。
セミコロンは省略可能です
各行の命令は文です。セミコロンは使用しても使用しなくても構いません。TypeScript ではセミコロンは省略可能ですが、使用することをお勧めします。
以下のコードはすべて有効です:
console.log("サンプル")
console.log("Google");
文を同じ行に書く場合は、セミコロンで区切る必要があります。そうしないとエラーになります。例:
console.log("サンプル");console.log("Google");
TypeScript コメント
コメントを書くことは良い習慣です。多くのプログラマーはコメントを嫌いますが、それでも各コードに説明を書くことをお勧めします。
コメントはプログラムの可読性を高めることができます。
コメントには、コードの作成者や関数の説明など、プログラムに関する情報を含めることができます。
コンパイラはコメントを無視します。
TypeScript は2種類のコメントをサポートしています
単行コメント ( // )− // の後の文字はすべてコメント内容です。
複数行コメント (/* */)− このコメントは複数行にわたることができます。
コメントの例:
// これは一行コメントです /* これは複数行コメントです これは複数行コメントです これは複数行コメントです */
TypeScript とオブジェクト指向
オブジェクト指向は、現実世界を理解し抽象化する方法です。
TypeScript はオブジェクト指向プログラミング言語です。
オブジェクト指向には主に2つの概念があります:オブジェクトとクラスです。
- オブジェクト:オブジェクトはクラスのインスタンスです(オブジェクトは彼女を見つけることではありません)、状態と振る舞いを持ちます。例えば、犬はオブジェクトです。その状態には色、名前、品種があり、振る舞いには尻尾を振る、吠える、食べるなどがあります。
- 类:クラスはテンプレートであり、ある種類のオブジェクトの振る舞いと状態を説明します。
- メソッド:メソッドはクラスの操作の実装手順です。
下図ではgirl、boyがクラスであり、具体的な各人がそのクラスのオブジェクトです:

TypeScript オブジェクト指向プログラミングの例:
上記の例では、Site というクラスを定義しています。このクラスには name() メソッドがあり、そのメソッドはターミナルに文字列 サンプル を出力します。
new キーワードでクラスのオブジェクトを作成し、そのオブジェクトが name() メソッドを呼び出します。
コンパイル後に生成されるJavaScriptコードは次のとおりです。
上記のJavaScriptコードを実行すると、出力結果は以下のようになります。
サンプルその他の拡張機能