静的メソッド (static method)
JavaやPHPには静的メソッド(static method)という概念があります。Rubyではクラスメソッドに相当します。通常のメソッドはインスタンスに属しますが、静的メソッドはクラスに属します。JavaやPHPではstaticキーワードで静的フィールドを宣言できます。
Javajava
class SomeClass {static public void doSomething() {// ...}}class Main {public static void main(String[] args) {SomeClass.doSomething();}}
Javajava
class SomeClass {static public void doSomething() {// ...}}class Main {public static void main(String[] args) {SomeClass.doSomething();}}
PHPphp
class SomeClass{public static function doSomething(){// ...}}SomeClass::doSomething();
PHPphp
class SomeClass{public static function doSomething(){// ...}}SomeClass::doSomething();
JavaScriptにはJavaのような静的メソッドの機能がありません。代わりに、クラスのプロパティに後から関数を代入することで似たようなことができます。
JavaScriptjs
classSomeClass {}SomeClass .doSomething = function () {// ...};SomeClass .doSomething ();
JavaScriptjs
classSomeClass {}SomeClass .doSomething = function () {// ...};SomeClass .doSomething ();
TypeScriptでは、Java風の静的メソッドの書き方ができるようになっています。TypeScriptで静的メソッドを宣言するにはstaticキーワードを用います。
TypeScriptts
classSomeClass {staticdoSomething () {// ...}}SomeClass .doSomething ();
TypeScriptts
classSomeClass {staticdoSomething () {// ...}}SomeClass .doSomething ();
静的メソッドとアクセス修飾子
TypeScriptの静的メソッドはアクセス修飾子を組み合わせられます。
ts
classSomeClass {private staticdoSomething () {// ...}}
ts
classSomeClass {private staticdoSomething () {// ...}}
📄️ アクセス修飾子
JavaやPHPなどの言語では、フィールドやメソッドにprivate, protected, publicを指定できます。JavaScriptでもprivateのようなプロパティを実現するためにプライベートクラスフィールドという仕様がありますが、Javaのようなアクセス修飾子とはやや様相が異なります。TypeScriptにはJava風のアクセス修飾子があります。