2.0.3TypeScriptはクラスのプロパティやメソッドに、外部からの参照を許さないようアクセスに制限が加えられます。インスタンスなしに、クラスから参照する静的なメソッドも定められます。それらの構文について、簡単なクラスを例にとってご説明しましょう。CodeでTypeScriptのコードを書く」では、コード001「TypeScriptのコードでクラスを定めて試す」でつぎのようなクラス(Point)を定めました。y;}}クラスのインスタンスをつくれば、たとえばつぎのようにプロパティ(x)を参照できますし、値も自由に書き替えられます。3プロパティ(xとy)に以下のようにprivateを宣言すると、クラスの外からは参照できなくなります。前掲コードと同じようにプロパティ(x)を参照すれば、ビルドのときつぎのようにクラス(Point)の中からしかアクセスできないというエラーが示されます。private宣言がない場合、デフォルトでpublicとみなされ、外から参照できることになります。y;}}privateのプロパティは、クラスの中からは参照できます。クラスに加えたメソッドは、その本体でプロパティを参照して処理できるということです。メソッドは以下のコード001のように、名前(getLength())に続けて関数と同じかたちで定めます。キーワードfunctionは用いません。戻り値はメソッド名に続く括弧()の後、コロン(:)で型づけします。0)からの距離を返します。つぎのようにクラス(Point)のインスタンス(obj)を参照してメソッドを呼び出せば距離の数値が戻ります。Math.sqrt(square);}}private宣言は、以下のようにメソッドにも加えられます。すると、外からメソッドを呼び出せば、つぎのようなエラーが示されます。静的なメソッドとプロパティMathクラスのメソッドは、インスタンスはつくらず、直接クラスを参照して呼び出します。そのような静的なメソッドやプロパティは、static宣言で定められます。前掲コード001のクラス(Point)に、つぎのようにstatic宣言して静的なメソッド(polar())を加えましょう。0)からの距離とx軸正方向となす角度を引数(lengthとangle)に渡して呼び出せば、その座標をプロパティにもった新たなインスタンスが返されます(距離と角度から座標を求めるやり方については「sinとcosは何する関数」参照)。y);}}つぎのように、クラス(Point)の参照に対してメソッド(polar())を呼び出すと新たなオブジェクトがつくられます。インスタンスのpublicなメソッド(getLength())で、原点から座標までの距離が確かめられるでしょう。0)と座標のなす角度を返すメソッド(getAngle())も加えましょう。Math.atan2()メソッドに座標yとxを引数に渡して呼び出せば(引数の順序に注意)、ラジアン角が返されます。/π)を静的なプロパティ(RAD_TO_DEG)に定めました。this.x);}}ここまでの手を加えたTypeScriptコードは以下にまとめました(コード002)。0)からの距離とx座標正方向となす度数角がインスタンスのメソッド(getLength()とgetAngle())で確かめられます。以下にサンプル001としてjsdo.itに書いたコードを掲げてあります。TypeScriptのバージョンを2.0.3に更新。