在angular2服务的背景下;私有静态函数与打字稿中的公共静态函数有什么区别?
public static getUserStockList(): Stock[] {
/* TODO: implement http call */
return WATCHLIST;
}
VS。
private static getUserStockList(): Stock[] {
/* TODO: implement http call */
return WATCHLIST;
}
修改
何时在私有函数上使用私有静态函数是否合适?
答案 0 :(得分:2)
可以从类的实例调用私有静态方法 一个例子:
interface Data {
// ...
}
interface StrictData {
// ...
abstract class MyClass {
protected constructor(data: StrictData) {
// ...
}
}
class AnotherClass extends MyClass {
private static normalizeData(data?: Data | StrictData): StrictData {
// ...
}
constructor(data?: Data | StrictData) {
super(AnotherClass.normalizeData(data));
}
}
可以从实例访问 AnotherClass.normalizeData
,编译器就可以了
但是,这个:
console.log(AnotherClass.normalizeData({}));
将导致:
属性' normalizeData'是私人的,只能在课堂上访问 ' AnotherClass'