メインコンテンツまでスキップ

静的メソッド (static method)

JavaやPHPには静的メソッド(static method)という概念があります。Rubyではクラスメソッドに相当します。通常のメソッドはインスタンスに属しますが、静的メソッドはクラスに属します。JavaやPHPではstaticキーワードで静的フィールドを宣言できます。

Java
java
class SomeClass {
static public void doSomething() {
// ...
}
}
class Main {
public static void main(String[] args) {
SomeClass.doSomething();
}
}
Java
java
class SomeClass {
static public void doSomething() {
// ...
}
}
class Main {
public static void main(String[] args) {
SomeClass.doSomething();
}
}
PHP
php
class SomeClass
{
public static function doSomething()
{
// ...
}
}
SomeClass::doSomething();
PHP
php
class SomeClass
{
public static function doSomething()
{
// ...
}
}
SomeClass::doSomething();

JavaScriptにはJavaのような静的メソッドの機能がありません。代わりに、クラスのプロパティに後から関数を代入することで似たようなことができます。

JavaScript
javascript
class SomeClass {}
SomeClass.doSomething = function () {
// ...
};
SomeClass.doSomething();
JavaScript
javascript
class SomeClass {}
SomeClass.doSomething = function () {
// ...
};
SomeClass.doSomething();

TypeScriptでは、Java風の静的メソッドの書き方ができるようになっています。TypeScriptで静的メソッドを宣言するにはstaticキーワードを用います。

TypeScript
typescript
class SomeClass {
static doSomething() {
// ...
}
}
SomeClass.doSomething();
TypeScript
typescript
class SomeClass {
static doSomething() {
// ...
}
}
SomeClass.doSomething();

静的メソッドとアクセス修飾子#

TypeScriptの静的メソッドはアクセス修飾子を組み合わせられます。

typescript
class SomeClass {
private static doSomething() {
// ...
}
}
typescript
class SomeClass {
private static doSomething() {
// ...
}
}