Ответ 1
1) Статические методы класса, в отличие от методов экземпляра, принадлежат (видны) самому классу (а не его экземпляру). Они не зависят от членов экземпляра класса и обычно принимают входные данные от параметров, выполняют над ним действия и возвращают некоторый результат. Они действуют независимо.
Они имеют смысл в сервисах Angular. Существуют ситуации, когда нам фактически не нужно использовать экземпляр службы, и мы не хотим создавать новую зависимость от него, нам нужен только доступ к методам, которые несет наша служба. Здесь вступают статические члены.
Пример использования статического метода, определенного в сервисе:
import { FairnessService } from './fairness.service';
export class MyComponent {
constructor() {
// This is just an example of accessing the static members of a class.
// Note we didn't inject the service, nor manually instantiate it like: let a = new A();
let value = FairnessService.calculatePercentValue(5, 50);
let value2 = FairnessService.calculatePercentValue(2, 80);
console.log(value); // => 10
console.log(value2); // => 2.5
}
}
2) Статические методы не влияют на производительность. Как мы выяснили выше, они не зависят от какого-либо экземпляра класса, и вызов этих методов никоим образом не будет создавать экземпляр класса.
Для получения дополнительной информации, он хорошо объяснил на: http://www.typescriptlang.org/docs/handbook/classes.html